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); }
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); } } }
public bool Submitchanges() { bool result = TerrainGlobals.getPerforce().getConnection().P4Submit(ID); mbKnownDirty = true; return(result); }
public bool RevertFile(string fileName) { bool result = TerrainGlobals.getPerforce().getConnection().P4Revert(ID, fileName); mbKnownDirty = true; return(result); }
public void UpdateChangeListInfo() { string changelist = TerrainGlobals.getPerforce().getConnection().P4Cmd("change -o ", ID.ToString(), ""); ParseChanges(changelist); mbKnownDirty = false; }
/// <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)); } }
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; } }
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; }
private void PostSmoothCheckBox_CheckedChanged(object sender, EventArgs e) { bool mbValue = ((CheckBox)sender).Checked; TerrainGlobals.getEditor().mComponentMaskSettings.mbPostSmooth = mbValue; UpdateComponentMasking(); }
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); }
private void SampleMaxHeightButton_Click(object sender, EventArgs e) { this.UseMaxHeightCheckBox.Checked = true; TerrainGlobals.getEditor().setMode(BTerrainEditor.eEditorMode.cModeSampleMaxHeight); TerrainGlobals.getEditor().mComponentMaskSettings.mbUseMaxHeight = true; UpdateComponentMaskingSettings(); }
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(); }
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); }
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(); }
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"); }
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(); } }
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(); }
//--------------------------------------------------- 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); } } }
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; }
private void button2_Click(object sender, EventArgs e) { button2.Enabled = false; TerrainGlobals.getTerrainFrontEnd().updateMemoryEstimate(true, false); refresh(false); button2.Enabled = true; }
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"; }
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(); } } }
public bool EditFile(string fileName) { bool result = TerrainGlobals.getPerforce().getConnection().P4Sync(fileName); bool result2 = TerrainGlobals.getPerforce().getConnection().P4Checkout(ID, fileName); mbKnownDirty = true; return(result); }
private void checkBox2_CheckedChanged(object sender, EventArgs e) { bool mbValue = ((CheckBox)sender).Checked; TerrainGlobals.getEditor().mComponentMaskSettings.mUseGradiant = mbValue; //if (mbValue == false) UpdateComponentMasking(); }
private void ExportButton_Click(object sender, EventArgs e) { if (!mIsQuickExport) { TerrainGlobals.getTerrain().setExportSettings(mExportSettings); } this.Close(); }
public void init() { TerrainGlobals.getVisual().getLODVB(ref mVB, ref mNumVerts, 0); mNumPrims = (uint)((mNumVerts) / 3); mPositionsTexture = TerrainGlobals.getVisual().giveEntireTerrainInTexture(); loadShader(); }
public void Init() { foreach (Modifier m in TerrainGlobals.getTerrainFrontEnd().mModifiers.Values) { ModifierControl c = new ModifierControl(); c.mModifier = m; flowLayoutPanel1.Controls.Add(c); } }
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; }
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); }
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); }