public object Clone() { DecorationModelResource copy = (DecorationModelResource)this.MemberwiseClone(); copy._viewObject = null; return(copy); }
public void AddLODVersion(DecorationModelResource res) { if (_LODVersions == null) { _LODVersions = new List <DecorationModelResource>(); } if (!_LODVersions.Contains(res)) { _LODVersions.Add(res); } res._LODOrigin = this; }
public void UpdateDecorationModelProperties(DecorationModelResource model) { Debug.Assert(DecorationModels.Contains(model)); Modified = true; if (HasEngineInstance()) EngineTerrain.UpdateDecorationModelProperties(model, true); EditorManager.ActiveView.UpdateView(false); }
public void DeleteDecorationModelResource(DecorationModelResource model) { Debug.Assert(DecorationModels.Contains(model)); DecorationModelResource oldparent = model._LODOrigin; DecorationModels.Remove(model); EngineTerrain.DeleteDecorationModel(model); model.SafeRemoveFromLODParent(); if (oldparent != null) EngineTerrain.UpdateDecorationModelProperties(oldparent, false); // also remove LOD children if (model._LODVersions != null) foreach (DecorationModelResource child in model._LODVersions) if (DecorationModels.Contains(child)) { EngineTerrain.DeleteDecorationModel(child); DecorationModels.Remove(child); } Modified = true; }
public DecorationModelResource CreateDecorationModelResource() { DecorationModelResource model = new DecorationModelResource(this, GetNewDecorationID()); return model; }
public void AddDecorationModelResource(DecorationModelResource model) { Debug.Assert(!DecorationModels.Contains(model)); DecorationModels.Add(model); if (model._LODOrigin != null && DecorationModels.Contains(model._LODOrigin)) model._LODOrigin.AddLODVersion(model); else model._LODOrigin = null; // also add LOD children if (model._LODVersions != null) foreach (DecorationModelResource child in model._LODVersions) if (!DecorationModels.Contains(child)) DecorationModels.Add(child); Modified = true; }
DecorationModelResource(SerializationInfo info, StreamingContext context) { _Name = info.GetString("_Name"); _Filename = info.GetString("_Filename"); ID = info.GetInt32("ID"); if (SerializationHelper.HasElement(info, "_NearClipDistance")) _NearClipDistance = info.GetSingle("_NearClipDistance"); if (SerializationHelper.HasElement(info, "_FarClipDistance")) _FarClipDistance = info.GetSingle("_FarClipDistance"); if (SerializationHelper.HasElement(info, "_fRelFadeStart")) _fRelFadeStart = info.GetSingle("_fRelFadeStart"); if (SerializationHelper.HasElement(info, "_visibleBitmask")) _visibleBitmask = (FlagsInt32_e)info.GetValue("_visibleBitmask", typeof(FlagsInt32_e)); if (SerializationHelper.HasElement(info, "_alignment")) _alignment = (TerrainAlignment)info.GetValue("_alignment", typeof(TerrainAlignment)); if (SerializationHelper.HasElement(info, "_sizeVariation")) _sizeVariation = info.GetSingle("_sizeVariation"); if (SerializationHelper.HasElement(info, "_averageScale")) _averageScale = info.GetSingle("_averageScale"); if (SerializationHelper.HasElement(info, "_density")) _density = info.GetSingle("_density"); if (SerializationHelper.HasElement(info, "_randomness")) _randomness = info.GetSingle("_randomness"); if (SerializationHelper.HasElement(info, "_pivotHeight")) _pivotHeight = info.GetSingle("_pivotHeight"); if (SerializationHelper.HasElement(info, "_customLightmapCasterMesh")) _customLightmapCasterMesh = info.GetString("_customLightmapCasterMesh"); if (SerializationHelper.HasElement(info, "_applyWind")) _applyWind = info.GetSingle("_applyWind"); if (SerializationHelper.HasElement(info, "_applyConstraint")) _applyConstraint = info.GetSingle("_applyConstraint"); if (SerializationHelper.HasElement(info, "_collisionCapsuleRadius")) _collisionCapsuleRadius = info.GetSingle("_collisionCapsuleRadius"); if (SerializationHelper.HasElement(info, "_castLightmapShadows")) _castLightmapShadows = info.GetBoolean("_castLightmapShadows"); if (SerializationHelper.HasElement(info, "_castDynamicShadows")) _castDynamicShadows = info.GetBoolean("_castDynamicShadows"); if (SerializationHelper.HasElement(info, "_ExportFilename")) _ExportFilename = info.GetString("_ExportFilename"); if (SerializationHelper.HasElement(info, "_iSectorX1")) { _iSectorX1 = info.GetInt32("_iSectorX1"); _iSectorY1 = info.GetInt32("_iSectorY1"); _iSectorX2 = info.GetInt32("_iSectorX2"); _iSectorY2 = info.GetInt32("_iSectorY2"); } if (SerializationHelper.HasElement(info, "_LODOrigin")) _LODOrigin = (DecorationModelResource)info.GetValue("_LODOrigin", typeof(DecorationModelResource)); }
protected AddDecorationModelAction(SerializationInfo info, StreamingContext context) : base(info, context) { _terrain = (TerrainShape)info.GetValue("_terrain", typeof(TerrainShape)); _model = (DecorationModelResource)info.GetValue("_model", typeof(DecorationModelResource)); }
public PaintDecorationAction(TerrainShape terrain, DecorationModelResource model) : base(terrain.EngineTerrain, "Edit decoration") { _model = model; }
DecorationModelResource(SerializationInfo info, StreamingContext context) { _Name = info.GetString("_Name"); _Filename = info.GetString("_Filename"); ID = info.GetInt32("ID"); if (SerializationHelper.HasElement(info, "_NearClipDistance")) { _NearClipDistance = info.GetSingle("_NearClipDistance"); } if (SerializationHelper.HasElement(info, "_FarClipDistance")) { _FarClipDistance = info.GetSingle("_FarClipDistance"); } if (SerializationHelper.HasElement(info, "_fRelFadeStart")) { _fRelFadeStart = info.GetSingle("_fRelFadeStart"); } if (SerializationHelper.HasElement(info, "_visibleBitmask")) { _visibleBitmask = (FlagsInt32_e)info.GetValue("_visibleBitmask", typeof(FlagsInt32_e)); } if (SerializationHelper.HasElement(info, "_alignment")) { _alignment = (TerrainAlignment)info.GetValue("_alignment", typeof(TerrainAlignment)); } if (SerializationHelper.HasElement(info, "_sizeVariation")) { _sizeVariation = info.GetSingle("_sizeVariation"); } if (SerializationHelper.HasElement(info, "_averageScale")) { _averageScale = info.GetSingle("_averageScale"); } if (SerializationHelper.HasElement(info, "_density")) { _density = info.GetSingle("_density"); } if (SerializationHelper.HasElement(info, "_randomness")) { _randomness = info.GetSingle("_randomness"); } if (SerializationHelper.HasElement(info, "_pivotHeight")) { _pivotHeight = info.GetSingle("_pivotHeight"); } if (SerializationHelper.HasElement(info, "_customLightmapCasterMesh")) { _customLightmapCasterMesh = info.GetString("_customLightmapCasterMesh"); } if (SerializationHelper.HasElement(info, "_applyWind")) { _applyWind = info.GetSingle("_applyWind"); } if (SerializationHelper.HasElement(info, "_applyConstraint")) { _applyConstraint = info.GetSingle("_applyConstraint"); } if (SerializationHelper.HasElement(info, "_collisionCapsuleRadius")) { _collisionCapsuleRadius = info.GetSingle("_collisionCapsuleRadius"); } if (SerializationHelper.HasElement(info, "_castLightmapShadows")) { _castLightmapShadows = info.GetBoolean("_castLightmapShadows"); } if (SerializationHelper.HasElement(info, "_castDynamicShadows")) { _castDynamicShadows = info.GetBoolean("_castDynamicShadows"); } if (SerializationHelper.HasElement(info, "_ExportFilename")) { _ExportFilename = info.GetString("_ExportFilename"); } if (SerializationHelper.HasElement(info, "_iSectorX1")) { _iSectorX1 = info.GetInt32("_iSectorX1"); _iSectorY1 = info.GetInt32("_iSectorY1"); _iSectorX2 = info.GetInt32("_iSectorX2"); _iSectorY2 = info.GetInt32("_iSectorY2"); } if (SerializationHelper.HasElement(info, "_LODOrigin")) { _LODOrigin = (DecorationModelResource)info.GetValue("_LODOrigin", typeof(DecorationModelResource)); } }
public bool CopyPropertiesFrom(DecorationModelResource other, bool bTriggerChangedEvent) { bool bAnyChanged = false; if (_Name != other._Name) { _Name = other._Name; bAnyChanged = true; } if (_ExportFilename != other._ExportFilename) { _ExportFilename = other._ExportFilename; bAnyChanged = true; } if (_Filename != other._Filename) { _Filename = other._Filename; bAnyChanged = true; } if (_FarClipDistance != other._FarClipDistance) { _FarClipDistance = other._FarClipDistance; bAnyChanged = true; } if (_NearClipDistance != other._NearClipDistance) { _NearClipDistance = other._NearClipDistance; bAnyChanged = true; } if (_fRelFadeStart != other._fRelFadeStart) { _fRelFadeStart = other._fRelFadeStart; bAnyChanged = true; } if (_visibleBitmask != other._visibleBitmask) { _visibleBitmask = other._visibleBitmask; bAnyChanged = true; } if (_averageScale != other._averageScale) { _averageScale = other._averageScale; bAnyChanged = true; } if (_sizeVariation != other._sizeVariation) { _sizeVariation = other._sizeVariation; bAnyChanged = true; } if (_applyWind != other._applyWind) { _applyWind = other._applyWind; bAnyChanged = true; } if (_applyConstraint != other._applyConstraint) { _applyConstraint = other._applyConstraint; bAnyChanged = true; } if (_collisionCapsuleRadius != other._collisionCapsuleRadius) { _collisionCapsuleRadius = other._collisionCapsuleRadius; bAnyChanged = true; } if (_castLightmapShadows != other._castLightmapShadows) { _castLightmapShadows = other._castLightmapShadows; bAnyChanged = true; } if (_castDynamicShadows != other._castDynamicShadows) { _castDynamicShadows = other._castDynamicShadows; bAnyChanged = true; } if (_alignment != other._alignment) { _alignment = other._alignment; bAnyChanged = true; } if (_density != other._density) { _density = other._density; bAnyChanged = true; } if (_randomness != other._randomness) { _randomness = other._randomness; bAnyChanged = true; } if (_pivotHeight != other._pivotHeight) { _pivotHeight = other._pivotHeight; bAnyChanged = true; } if (_customLightmapCasterMesh != other._customLightmapCasterMesh) { _customLightmapCasterMesh = other._customLightmapCasterMesh; bAnyChanged = true; } if (bTriggerChangedEvent && bAnyChanged) { TriggerPropertyChangedEvent(); } return(bAnyChanged); }
public IDecorationResourcePGView_Billboards(DecorationModelResource owner) : base(owner) { }
public IDecorationResourcePGView_Speedtree(DecorationModelResource owner) : base(owner) { }
DecorationModelResource CreateNewModel(DecorationModelResource lodOrigin, string name) { if (TerrainEditor.CurrentTerrain == null) return null; DecorationModelResource model = TerrainEditor.CurrentTerrain.CreateDecorationModelResource(); // pick the model file OpenFileDlg fileDlg = new OpenFileDlg(); fileDlg.InitialDirectory = EditorManager.Project.ProjectDir; fileDlg.Text = "Select model file"; fileDlg.Caption = fileDlg.Text; fileDlg.Filter = new string[] { ".model", ".srt", ".atlas" }; // TODO: get via available plugins? fileDlg.FileName = model.Filename; if (fileDlg.ShowDialog(this) != DialogResult.OK) return null; model._LODOrigin = lodOrigin; model.Filename = EditorManager.Project.MakeRelative(fileDlg.FileName); if (string.IsNullOrEmpty(name)) model.Name = System.IO.Path.GetFileNameWithoutExtension(model.Filename); else model.Name = name; EditorManager.Actions.Add(new AddDecorationModelAction(TerrainEditor.CurrentTerrain, model)); return model; }
public IDecorationResourcePGView(DecorationModelResource owner) { _owner = owner; }
private void listView_VegetationModels_DoubleClick(object sender, EventArgs e) { if (TerrainEditor.CurrentDecorationModel == null) return; if (TerrainEditor.CurrentTerrain == null || TerrainEditor.CurrentTerrain.IsReference || !TerrainEditor.CurrentTerrain.Modifiable) return; using(PropertyGridDlg dlg = new PropertyGridDlg("Edit properties of '" + TerrainEditor.CurrentDecorationModel.Name + "'", "Edit all properties of this vegetation model at once so update of the terrain only happens when changes are confirmed")) { DecorationModelResource other = new DecorationModelResource(null, 0); other.CopyPropertiesFrom(TerrainEditor.CurrentDecorationModel, false); dlg.DataObjectNoClone = other.ViewObject; if (dlg.ShowDialog(this) != DialogResult.OK) return; TerrainEditor.CurrentDecorationModel.CopyPropertiesFrom(other, true); } }
public IDecorationResourcePGView_Basic(DecorationModelResource owner) : base(owner) { }
protected PaintDecorationAction(SerializationInfo info, StreamingContext context) : base(info, context) { _model = (DecorationModelResource)info.GetValue("_model", typeof(DecorationModelResource)); }
public AddDecorationModelAction(TerrainShape terrain, DecorationModelResource model) { _model = model; _terrain = terrain; }