Exemplo n.º 1
0
        override public bool computeOutput(ConnectionPoint connPoint, OutputGenerationParams parms)
        {
            if (!verifyInputConnections())
            {
                return(false);
            }

            if (!gatherInputAndParameters(parms))
            {
                return(false);
            }

            MaskParam mp = ((MaskParam)(connPoint.ParamType));

            mp.Value = new DAGMask(InputMask.Width, InputMask.Height);

            for (int x = 0; x < parms.Width; x++)
            {
                for (int y = 0; y < parms.Height; y++)
                {
                    Vector2 v      = TerrainGlobals.getTerrain().getGradiant(x, y);
                    float   factor = BMathLib.Clamp(v.Length(), 0, 1);
                    if (factor < 0)
                    {
                        continue;
                    }

                    mp.Value[x, y] = factor;
                }
            }

            return(true);
        }
Exemplo n.º 2
0
        private void markOverrideTessellations(ErrorMetricRefine refiner)
        {
            JaggedContainer <byte> v = TerrainGlobals.getEditor().getJaggedTesselation();

            int width = TerrainGlobals.getTerrain().getNumXVerts();

            long id;
            byte maskValue;

            v.ResetIterator();
            while (v.MoveNext(out id, out maskValue))
            {
                if (maskValue == BTerrainEditor.cTesselationEmptyVal)
                {
                    continue;
                }

                int x = (int)(id / width);
                int z = (int)(id - x * width);

                if (maskValue == (int)BTerrainEditor.eTessOverrideVal.cTess_Max)
                {
                    refiner.setMarkedPt(x, z, true);
                }
                else if (maskValue == (int)BTerrainEditor.eTessOverrideVal.cTess_Min)
                {
                    refiner.setMarkedPt(x, z, false);
                }
            }
        }
Exemplo n.º 3
0
        public bool Submitchanges()
        {
            bool result = TerrainGlobals.getPerforce().getConnection().P4Submit(ID);

            mbKnownDirty = true;
            return(result);
        }
Exemplo n.º 4
0
        public bool RevertFile(string fileName)
        {
            bool result = TerrainGlobals.getPerforce().getConnection().P4Revert(ID, fileName);

            mbKnownDirty = true;
            return(result);
        }
Exemplo n.º 5
0
        public void UpdateChangeListInfo()
        {
            string changelist = TerrainGlobals.getPerforce().getConnection().P4Cmd("change -o ", ID.ToString(), "");

            ParseChanges(changelist);
            mbKnownDirty = false;
        }
Exemplo n.º 6
0
        /// <summary>
        /// Do you want a file in a change list.  This will accomplish the goal in several ways.
        /// </summary>
        /// <param name="fileName"></param>
        /// <param name="reopen">pulls the file from another one of the user's change list into this one</param>
        /// <returns></returns>
        public bool AddOrEdit(string fileName, bool reopen)
        {
            SimpleFileStatus status = TerrainGlobals.getPerforce().GetFileStatusSimple(fileName);

            if (status.State == eFileState.NotInPerforce)
            {
                return(AddFile(fileName));
            }
            //else if (status.IsLatestRevision == false)
            //{
            //   return EditFile(fileName);
            //}
            else if (reopen && status.CheckedOutThisUser == true)
            {
                if (status.UserChangeListNumber != ID)
                {
                    return(ReOpenFile(fileName));//yoink
                }
                else
                {
                    return(true);//we already have it!
                }
            }
            else
            {
                return(EditFile(fileName));
            }
        }
Exemplo n.º 7
0
        void findMaxsMinsRange(ref Vector3 max, ref Vector3 mid, ref Vector3 range)
        {
            BBoundingBox bb = TerrainGlobals.getTerrain().getDisplacementBB();

            max = bb.max;
            mid = bb.min;

            range = (max - mid) * 2.1f;

            mid   = range * 0.5f;
            mid.X = rangeCompact(mid.X);
            mid.Y = rangeCompact(mid.Y);
            mid.Z = rangeCompact(mid.Z);

            range = (mid * 2.1f);

            if (range.X == 0)
            {
                mid.X = 0; range.X = 1;
            }
            if (range.Y == 0)
            {
                mid.Y = 0; range.Y = 1;
            }
            if (range.Z == 0)
            {
                mid.Z = 0; range.Z = 1;
            }
        }
Exemplo n.º 8
0
        void mUpdateTimer_Tick(object sender, EventArgs e)
        {
            mbSuspendUIUpdate = true;
            int x = TerrainGlobals.getEditor().mLastTerrainPasteLocationX;
            int z = TerrainGlobals.getEditor().mLastTerrainPasteLocationZ;

            XPosUpDown.Value = x;
            ZPosUpDown.Value = z;



            if (mbDirty == true)
            {
                if (((System.TimeSpan)(System.DateTime.Now - mLastDirtyTime)).TotalMilliseconds > 400)
                {
                    if (Control.MouseButtons == MouseButtons.Left)
                    {
                        return;
                    }
                    if (ShowBBOnlyCheckBox.Checked == true)
                    {
                        return;
                    }

                    mbDirty = false;
                    TerrainGlobals.getEditor().TransformClipart(GetXScale(), GetYScale(), GetZScale(), GetRotation());
                    TerrainGlobals.getEditor().applyPastedData(x, z, GetYOffset());
                    CoreGlobals.getEditorMain().mOneFrame = true;

                    ChangeLabel.Text      = "Done";
                    ChangeLabel.ForeColor = System.Drawing.Color.Green;
                }
            }
            mbSuspendUIUpdate = false;
        }
Exemplo n.º 9
0
        private void PostSmoothCheckBox_CheckedChanged(object sender, EventArgs e)
        {
            bool mbValue = ((CheckBox)sender).Checked;

            TerrainGlobals.getEditor().mComponentMaskSettings.mbPostSmooth = mbValue;
            UpdateComponentMasking();
        }
Exemplo n.º 10
0
        public bool LoadV2(BinaryReader b)
        {
            int count = b.ReadInt32();

            for (int i = 0; i < count; i++)
            {
                MaskItem item = new MaskItem();
                item.mMask = MaskFactory.GetNewMask();
                item.Name  = b.ReadString();

                JaggedContainer <float> container = item.mMask as JaggedContainer <float>;
                container.LoadByStripe(b,
                                       (JaggedContainer <float> .LoadStripeDelegate)(delegate(BinaryReader r, float[] values)
                {
                    for (int j = 0; j < values.Length; j++)
                    {
                        values[j] = r.ReadSingle();
                    }
                }));

                //CLM [07.27.07]
                //these older versions need to be scaled by 0.5 because of a
                //massive terrain scaling change.
                int oldSize = TerrainGlobals.getTerrain().getNumXVerts() * 2;
                resampleJaggedArrayFloat(ref container, oldSize, oldSize, TerrainGlobals.getTerrain().getNumXVerts(), TerrainGlobals.getTerrain().getNumXVerts(), 0);

                MaskCheckList.Items.Add(item, false);
            }

            return(true);
        }
Exemplo n.º 11
0
 private void SampleMaxHeightButton_Click(object sender, EventArgs e)
 {
     this.UseMaxHeightCheckBox.Checked = true;
     TerrainGlobals.getEditor().setMode(BTerrainEditor.eEditorMode.cModeSampleMaxHeight);
     TerrainGlobals.getEditor().mComponentMaskSettings.mbUseMaxHeight = true;
     UpdateComponentMaskingSettings();
 }
Exemplo n.º 12
0
        public void renderSubWindow(int minXChunk, int minZChunk, int maxXChunk, int maxZChunk)
        {
            int numXNodes = (int)(TerrainGlobals.getTerrain().getNumXVerts() / BTerrainQuadNode.cMaxWidth);

            minXChunk = (int)(BMathLib.Clamp(minXChunk, 0, numXNodes - 1));
            minZChunk = (int)(BMathLib.Clamp(minZChunk, 0, numXNodes - 1));
            maxXChunk = (int)(BMathLib.Clamp(maxXChunk, 0, numXNodes - 1));
            maxZChunk = (int)(BMathLib.Clamp(maxZChunk, 0, numXNodes - 1));

            //set LOD Level
            mTerrainGPUShader.mShader.SetValue(mShaderChunkScaleHandle, TerrainGlobals.getTerrain().getTileScale());
            BRenderDevice.getDevice().SetStreamSource(0, mVB, 0);

            mTerrainGPUShader.mShader.BeginPass((int)mPassNum);

            BTerrainQuadNode[] mNodes = TerrainGlobals.getTerrain().getQuadNodeLeafArray();

            for (int i = minXChunk; i < maxXChunk; i++)
            {
                for (int j = minZChunk; j < maxZChunk; j++)
                {
                    int indx = i * numXNodes + j;
                    renderLeafNode(mNodes[indx]);
                }
            }

            mTerrainGPUShader.mShader.EndPass();
        }
Exemplo n.º 13
0
        public bool LoadV1(int count, Stream s)
        {
            MaskCheckList.Items.Clear();

            BinaryReader b = new BinaryReader(s);

            //int count = b.ReadInt32();
            for (int i = 0; i < count; i++)
            {
                MaskItem item = new MaskItem();
                item.mMask = MaskFactory.GetNewMask();
                item.Name  = b.ReadString();
                int hashSize = b.ReadInt32();
                for (int j = 0; j < hashSize; j++)
                {
                    long  key = b.ReadInt64();
                    float val = b.ReadSingle();
                    item.mMask.SetMaskWeight(key, val);
                }
                //MaskListView.Items.Add(item);
                //CLM [07.27.07]
                //these older versions need to be scaled by 0.5 because of a
                //massive terrain scaling change.
                int oldSize = TerrainGlobals.getTerrain().getNumXVerts() * 2;
                JaggedContainer <float> container = item.mMask as JaggedContainer <float>;
                resampleJaggedArrayFloat(ref container, oldSize, oldSize, TerrainGlobals.getTerrain().getNumXVerts(), TerrainGlobals.getTerrain().getNumXVerts(), 0);

                MaskCheckList.Items.Add(item, false);
            }

            return(true);
        }
Exemplo n.º 14
0
        private void SimTileQuality_Load(object sender, EventArgs e)
        {
            trackBar1.Minimum = 0;
            trackBar1.Maximum = (int)eSimQuality.cQuality_Count - 1;

            int v = (int)(1.0f / TerrainGlobals.getEditor().getSimRep().getVisToSimScale());

            //ugggg...
            if (v == (int)eSimQuality.cQuality_Max)
            {
                trackBar1.Value = 4;
            }
            else if (v == (int)eSimQuality.cQuality_High)
            {
                trackBar1.Value = 3;
            }
            else if (v == (int)eSimQuality.cQuality_Med)
            {
                trackBar1.Value = 2;
            }
            else if (v == (int)eSimQuality.cQuality_Low)
            {
                trackBar1.Value = 1;
            }
            else if (v == (int)eSimQuality.cQuality_Min)
            {
                trackBar1.Value = 0;
            }

            visToSimMul = (int)Math.Pow(2, (double)eSimQuality.cQuality_Count - trackBar1.Value);

            updateLabel();
        }
Exemplo n.º 15
0
        void SelectButton(FoliageBladeButton but)
        {
            if (mSelectedButton != null)
            {
                mSelectedButton.Invalidate();
            }

            mSelectedButton = but;

            mSelectedButton.Invalidate();

            if (paintSet.Checked)
            {
                TerrainGlobals.getEditor().setMode(BTerrainEditor.eEditorMode.cModeFoliageSet);
            }
            else if (paintErase.Checked)
            {
                TerrainGlobals.getEditor().setMode(BTerrainEditor.eEditorMode.cModeFoliageErase);
            }

            int selectedSetIndex   = FoliageManager.giveIndexOfSet(mSelectedButton.mFullFileName);
            int selectedBladeIndex = mSelectedButton.mIndexInConatiningSet;

            FoliageManager.SelectedSetIndex   = selectedSetIndex;
            FoliageManager.SelectedBladeIndex = selectedBladeIndex;

            TerrainGlobals.getEditor().newFoliageBrush();

            CoreGlobals.getEditorMain().MainMode = BEditorMain.eMainMode.cTerrain;

            CoreGlobals.getEditorMain().mPhoenixScenarioEditor.HandleCommand("Foliage Paint");
        }
Exemplo n.º 16
0
        private void ShowBBOnlyCheckBox_CheckedChanged(object sender, EventArgs e)
        {
            TerrainGlobals.getEditor().mbClipartBBOnly = ShowBBOnlyCheckBox.Checked;
            if (mbSuspendUIUpdate)
            {
                return;
            }
            ClipArtSetDirty();


            if (TerrainGlobals.getEditor().mbClipartBBOnly == false)
            {
                Cursor.Current = Cursors.WaitCursor;
                int x = TerrainGlobals.getEditor().mLastTerrainPasteLocationX;
                int z = TerrainGlobals.getEditor().mLastTerrainPasteLocationZ;

                TerrainGlobals.getEditor().TransformClipart(GetXScale(), GetYScale(), GetZScale(), GetRotation());
                TerrainGlobals.getEditor().applyPastedData(x, z, GetYOffset());
                CoreGlobals.getEditorMain().mOneFrame = true;
                Cursor.Current = Cursors.Default;
            }
            else
            {
                TerrainGlobals.getEditor().clearBrushDeformations();
            }
        }
Exemplo n.º 17
0
 private void checkBox3_CheckedChanged(object sender, EventArgs e)
 {
     mData.mDoSaveData["CopiedUnitData"] = checkBox3.Checked;
     mData.SetThumbnail(TerrainGlobals.getTerrainFrontEnd().renderThumbnail(mData.mDoSaveData["CopiedTextureData"], mData.mDoSaveData["CopiedUnitData"]));
     pictureBox1.Image = mData.mThumbnail;
     pictureBox1.Invalidate();
 }
Exemplo n.º 18
0
        //---------------------------------------------------
        static public void estimateMemory(bool forceAutoSave, bool asyncTest)
        {
            if (mEstimatingMemory != 0)
            {
                return;
            }

            using (PerfSection p3 = new PerfSection("estimateMemory"))
            {
                System.Threading.Interlocked.Exchange(ref mEstimatingMemory, 1);

                TerrainGlobals.getTerrainFrontEnd().setMemoryEstimateString(null, "Calculating..");
                if (asyncTest)
                {
                    int hackedStatePacket = forceAutoSave ? 1 : 0;
                    hackedStatePacket  = hackedStatePacket << 1;
                    hackedStatePacket |= asyncTest ? 1 : 0;

                    BackgroundWorker mWorkerThread = new BackgroundWorker();
                    mWorkerThread.WorkerReportsProgress      = false;
                    mWorkerThread.WorkerSupportsCancellation = true;
                    mWorkerThread.DoWork += bw_Work;
                    mWorkerThread.RunWorkerAsync(hackedStatePacket);
                }
                else
                {
                    doMemoryEstimate(forceAutoSave);
                    updateGUIElements(asyncTest);
                }
            }
        }
Exemplo n.º 19
0
        private void toolStripButton6_Click(object sender, EventArgs e)
        {
            int     tWidth  = TerrainGlobals.getTerrain().getNumXVerts();
            int     tHeight = TerrainGlobals.getTerrain().getNumZVerts();
            DAGMask resMask = canvasForm.execute(tWidth, tHeight);

            if (resMask == null)
            {
                MessageBox.Show("There was an error computing output");
                return;
            }


            Masking.clearSelectionMask();

            for (int x = 0; x < tWidth; x++)
            {
                for (int y = 0; y < tHeight; y++)
                {
                    float k = resMask[x, y];
                    Masking.addSelectedVert(x, y, k);
                }
            }
            Masking.rebuildVisualsAfterSelection();
            resMask = null;
        }
Exemplo n.º 20
0
 private void button2_Click(object sender, EventArgs e)
 {
     button2.Enabled = false;
     TerrainGlobals.getTerrainFrontEnd().updateMemoryEstimate(true, false);
     refresh(false);
     button2.Enabled = true;
 }
Exemplo n.º 21
0
        public void Init()
        {
            mBuffer = new Bitmap(pictureBox1.Width / 4, pictureBox1.Height / 4, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
            mFloats = new float[pictureBox1.Width / 4, pictureBox1.Height / 4];

            mFunction = (BasicNoise)TerrainGlobals.getTerrainFrontEnd().getNoiseFunction();


            this.floatSlider1.Constraint = mFunction.mScaleX;
            this.floatSlider1.ValueName  = "Scale X";
            this.floatSlider2.Constraint = mFunction.mScaleY;
            this.floatSlider2.ValueName  = "Scale Z";

            this.floatSlider3.Constraint = mFunction.mPersistance;
            this.floatSlider3.ValueName  = "Persistance";

            this.floatSlider4.Constraint = mFunction.mOctaves;
            this.floatSlider4.ValueName  = "Octaves";
            this.floatSlider4.mbIntStep  = true;

            this.floatSlider5.Constraint = mFunction.mFreq;
            this.floatSlider5.ValueName  = "Frequency";
            this.floatSlider6.Constraint = mFunction.mAmplitude;
            this.floatSlider6.ValueName  = "Amplitude";
        }
Exemplo n.º 22
0
        public void addSelectTexture(TerrainTextureButton but)
        {
            if (mSelectedButton != null)
            {
                mSelectedButton.Invalidate();
            }

            mSelectedButton = but;
            mSelectedButton.Invalidate();


            if (but is TerrainTextureSplatButton)
            {
                SelectedDef = SimTerrainType.getFromTypeName(but.typename);

                if (!isActiveSetSelected())
                {
                    TerrainGlobals.getTexturing().addActiveTexture(SimTerrainType.getWorkingTexName(mSelectedDef));
                }
            }
            else if (but is TerrainTextureDecalButton)
            {
                if (!isActiveSetSelected())
                {
                    TerrainGlobals.getTexturing().addActiveDecal(((TerrainTextureDecalButton)but).mFullFilename);
                }
                TerrainGlobals.getTerrainFrontEnd().SelectedDecalIndex = TerrainGlobals.getTexturing().getActiveDecalIndex(((TerrainTextureDecalButton)but).mFullFilename);
                if (TerrainGlobals.getEditor().getRenderMode() == BTerrainEditor.eEditorRenderMode.cRenderTextureSelectRender)
                {
                    TerrainGlobals.getTexturing().reloadCachedVisuals();
                }
            }
        }
Exemplo n.º 23
0
        public bool EditFile(string fileName)
        {
            bool result  = TerrainGlobals.getPerforce().getConnection().P4Sync(fileName);
            bool result2 = TerrainGlobals.getPerforce().getConnection().P4Checkout(ID, fileName);

            mbKnownDirty = true;
            return(result);
        }
Exemplo n.º 24
0
        private void checkBox2_CheckedChanged(object sender, EventArgs e)
        {
            bool mbValue = ((CheckBox)sender).Checked;

            TerrainGlobals.getEditor().mComponentMaskSettings.mUseGradiant = mbValue;
            //if (mbValue == false)
            UpdateComponentMasking();
        }
Exemplo n.º 25
0
 private void ExportButton_Click(object sender, EventArgs e)
 {
     if (!mIsQuickExport)
     {
         TerrainGlobals.getTerrain().setExportSettings(mExportSettings);
     }
     this.Close();
 }
Exemplo n.º 26
0
        public void init()
        {
            TerrainGlobals.getVisual().getLODVB(ref mVB, ref mNumVerts, 0);
            mNumPrims = (uint)((mNumVerts) / 3);

            mPositionsTexture = TerrainGlobals.getVisual().giveEntireTerrainInTexture();

            loadShader();
        }
Exemplo n.º 27
0
 public void Init()
 {
     foreach (Modifier m in TerrainGlobals.getTerrainFrontEnd().mModifiers.Values)
     {
         ModifierControl c = new ModifierControl();
         c.mModifier = m;
         flowLayoutPanel1.Controls.Add(c);
     }
 }
Exemplo n.º 28
0
        private void colorPickerLauncher3_SelectedColorChanged(object sender, EventArgs e)
        {
            Color col = colorPickerLauncher3.SelectedColor;

            TerrainGlobals.getRender().mCursorColorTint.X = col.R / 255.0f;
            TerrainGlobals.getRender().mCursorColorTint.Y = col.G / 255.0f;
            TerrainGlobals.getRender().mCursorColorTint.Z = col.B / 255.0f;
            TerrainGlobals.getRender().mCursorColorTint.W = 1;
        }
Exemplo n.º 29
0
        private void roadTextureListBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            mSelectedRoadTextue      = roadTextureListBox.SelectedIndex;
            mSelectedRoadTextureName = (string)roadTextureListBox.SelectedItem;
            RoadManager.setRoadTexture(mSelectedRoadTextureName);

            tabControl1.SelectedTab = tabControl1.TabPages[0];
            TerrainGlobals.getEditor().setMode(BTerrainEditor.eEditorMode.cModeRoadAdd);
        }
Exemplo n.º 30
0
            public P4Resource(PerforceChangeList list, string localName, string perforceName, string perforceAction)
            {
                mList           = list;
                mLocalName      = localName;
                mPerforceName   = perforceName;
                mPerforceAction = (ePerforceAction)Enum.Parse(typeof(ePerforceAction), perforceAction, true);

                mStatus = TerrainGlobals.getPerforce().getConnection().P4GetFileStatus(mPerforceName);
            }