public void RemoveLayerAt(int index) { #if UNITY_ANDROID if (Settings.Vibration) { Handheld.Vibrate(); } #endif failAudio.Play(); CameraShake.instance.Shake(.5f); perfectItteration = false; if (index < layers.Count) { LayerObject removeObject = layers[index]; Destroy(removeObject.layer.gameObject); Destroy(removeObject.mask.gameObject); layers.Remove(removeObject); } SizeOfWorld = layers.Count; if (layers.Count == 0) { outliner.gameObject.SetActive(false); } }
public new LayerObject GetDownLast() { global::System.IntPtr cPtr = C4dApiPINVOKE.LayerObject_GetDownLast(swigCPtr); LayerObject ret = (cPtr == global::System.IntPtr.Zero) ? null : new LayerObject(cPtr, false); return(ret); }
public static LayerObject Alloc() { global::System.IntPtr cPtr = C4dApiPINVOKE.LayerObject_Alloc(); LayerObject ret = (cPtr == global::System.IntPtr.Zero) ? null : new LayerObject(cPtr, false); return(ret); }
internal void Apply() { if (this.Templates == null) { this.Templates = new Dictionary <IFeatureLayer, List <YTEditTemplateWrap> >(); } for (int i = 0; i < this.checkedListBox1.Items.Count; i++) { bool itemChecked = this.checkedListBox1.GetItemChecked(i); LayerObject obj2 = this.checkedListBox1.Items[i] as LayerObject; if (itemChecked) { if (!this.Templates.ContainsKey(obj2.Layer as IFeatureLayer)) { List <YTEditTemplate> list = YTEditTemplateFactory.Create(obj2.Layer as IFeatureLayer); List <YTEditTemplateWrap> list2 = new List <YTEditTemplateWrap>(); foreach (YTEditTemplate template in list) { list2.Add(new YTEditTemplateWrap(template)); } this.Templates.Add(obj2.Layer as IFeatureLayer, list2); } } else if (this.Templates.ContainsKey(obj2.Layer as IFeatureLayer)) { this.Templates.Remove(obj2.Layer as IFeatureLayer); } } }
public LayerObject GetLayerObject(BaseDocument doc) { global::System.IntPtr cPtr = C4dApiPINVOKE.BaseList2D_GetLayerObject(swigCPtr, BaseDocument.getCPtr(doc)); LayerObject ret = (cPtr == global::System.IntPtr.Zero) ? null : new LayerObject(cPtr, false); return(ret); }
public void AddLayerObject() { LayerObject newObject = Instantiate(layerPrefab); newObject.name = "Layer " + allLayers.Count; newObject.AssignBaseLayer(allLayers.Count); allLayers.Add(allLayers.Count, newObject); }
/// <summary> Creates an xMap-1 map object. </summary> /// <param name="objectInfos">Set of object infos returned by xMap-1.</param> /// <param name="layerObject">XServer layer object.</param> public XMap1MapObject(ObjectInfos objectInfos, LayerObject layerObject) : base( (((long)layerObject.hiId << 32) + layerObject.loId).ToString(), objectInfos.name, new Point(layerObject.pixel.x, layerObject.pixel.y), new Point([email protected], [email protected]), () => new[] { new KeyValuePair <string, string>("description", GetDescription(layerObject)) } ) { Source = layerObject; }
private void button1_Click(object sender, EventArgs e) { for (int i = 0; i < this.checkedListBox1.Items.Count; i++) { LayerObject obj2 = this.checkedListBox1.Items[i] as LayerObject; this.checkedListBox1.SetItemChecked(i, obj2.Layer.Visible); } this.CanApply = this.checkedListBox1.CheckedIndices.Count > 0; this.NexHasEnable = this.checkedListBox1.CheckedIndices.Count > 0; }
public ElementAnimation GetAnimation(LayerObject layerObject) { ElementAnimation animation = new ElementAnimation(); Vector2 position = new Vector2(layerObject.DestinationRectangle.X, layerObject.DestinationRectangle.Y); animation.LoadContent(layerObject.AnimationSequence, layerObject.DestinationRectangle, layerObject.Width, layerObject.Height, layerObject.AnimationRandomness.Value); return(animation); }
private void chkUsetSelectedLayer_CheckedChanged(object sender, EventArgs e) { if (this.chkUsetSelectedLayer.Checked) { for (int i = this.checkedListBoxLayer.Items.Count - 1; i >= 0; i--) { LayerObject obj2 = this.checkedListBoxLayer.Items[i] as LayerObject; if (!(obj2.Layer as IFeatureLayer).Selectable) { this.checkedListBoxLayer.Items.RemoveAt(i); } } } }
public void FlashObject() { try { LayerObject selectedItem = this.cboLayer.SelectedItem as LayerObject; IFeatureLayer layer = selectedItem.Layer as IFeatureLayer; if (layer != null) { Flash.FlashSelectedFeature(this.m_pActiveView.ScreenDisplay, layer); } } catch { } }
public void CheckBeat(ColorType type) { if (layers.Count == 0 && !outliner.resetting && !outliner.gameObject.active) { particles.Play(); ui.FirstMove(); perfectItteration = true; failAudio.Play(); NewItteration(); return; } LayerObject closestObject = layers[0]; float distance = Mathf.Infinity; int index = 0; int closestIndex = 0; foreach (LayerObject layer in layers) { if (Mathf.Abs(outliner.Scale - layer.layer.transform.localScale.x) < distance) { closestIndex = index; closestObject = layer; distance = Mathf.Abs(outliner.Scale - layer.layer.transform.localScale.x); } index++; } float precentage = distance / (1f / (float)layers.Count); // between 0 and 50 if (precentage > precentageMarge || closestObject.inPulse || type != closestObject.layer.Type) { RemoveLayerAt(closestIndex); } else { if (layers.IndexOf(closestObject) != layers.Count - 1 || !perfectItteration) { closestObject.layer.Dance(); } closestObject.inPulse = true; } outliner.Pulse(); }
LayerObject CreateNewLayerObject(int layer) { LayerObject obj = new LayerObject(); GameObject o = new GameObject("Layer " + layer); o.layer = gameObject.layer; var transform = o.GetComponent <Transform>(); obj.meshFilter = o.AddComponent <MeshFilter>(); obj.meshRenderer = o.AddComponent <MeshRenderer>(); obj.meshFilter.mesh = new Mesh(); transform.parent = this.transform; transform.localPosition = new Vector3(0, layer * m_scaleY * Chunk.chunkSize, 0); transform.localRotation = Quaternion.identity; transform.localScale = new Vector3(m_scaleX, m_scaleY, m_scaleZ); return(obj); }
void UpdateLayerObject(LayerObject obj, Material material, int index, MeshParams <WorldVertexDefinition> meshParams) { var data = meshParams.GetMesh(material, index); obj.meshRenderer.material = material; var mesh = obj.meshFilter.mesh; MeshEx.SetWorldMeshParams(mesh, data.verticesSize, data.indexesSize); mesh.SetVertexBufferData(data.vertices, 0, 0, data.verticesSize); mesh.SetIndexBufferData(data.indexes, 0, 0, data.indexesSize); mesh.subMeshCount = 1; mesh.SetSubMesh(0, new UnityEngine.Rendering.SubMeshDescriptor(0, data.indexesSize, MeshTopology.Triangles)); //full chunk layer mesh.bounds = new Bounds(new Vector3(Chunk.chunkSize, Chunk.chunkSize, Chunk.chunkSize) / 2, new Vector3(Chunk.chunkSize, Chunk.chunkSize, Chunk.chunkSize)); }
public void ZoomToSelectObject() { try { LayerObject selectedItem = this.cboLayer.SelectedItem as LayerObject; IFeatureLayer layer = selectedItem.Layer as IFeatureLayer; if (layer != null) { if (this.m_pActiveView is IScene) { CommonHelper.Zoom2SelectedFeature(this.m_pActiveView as IScene); } else { CommonHelper.Zoom2SelectedFeature(this.m_pActiveView); } } } catch { } }
private bool UpdateFieldValue(IField pField, object str) { if (this.cboLayer.SelectedIndex == -1) { return(false); } LayerObject selectedItem = this.cboLayer.SelectedItem as LayerObject; IFeatureLayer layer = selectedItem.Layer as IFeatureLayer; if (layer == null) { return(false); } IWorkspaceEdit editWorkspace = Yutai.ArcGIS.Common.Editor.Editor.EditWorkspace; bool flag = false; try { ICursor cursor; editWorkspace.StartEditOperation(); int index = layer.FeatureClass.Fields.FindField(pField.Name); (layer as IFeatureSelection).SelectionSet.Search(null, false, out cursor); for (IRow row = cursor.NextRow(); row != null; row = cursor.NextRow()) { row.set_Value(index, str); row.Store(); } ComReleaser.ReleaseCOMObject(cursor); editWorkspace.StopEditOperation(); flag = true; } catch (Exception exception) { MessageBox.Show("输入数据格式错误"); CErrorLog.writeErrorLog(null, exception, ""); } return(flag); }
private void UpdateGrid() { if (this.cboLayer.SelectedIndex != -1) { LayerObject selectedItem = this.cboLayer.SelectedItem as LayerObject; IFeatureLayer layer = selectedItem.Layer as IFeatureLayer; if (layer != null) { IFields fields = layer.FeatureClass.Fields; ISubtypes featureClass = layer.FeatureClass as ISubtypes; for (int i = 0; i < fields.FieldCount; i++) { IField field = fields.get_Field(i); if (((((field.Type != esriFieldType.esriFieldTypeGeometry) && (field.Type != esriFieldType.esriFieldTypeOID)) && (field.Type != esriFieldType.esriFieldTypeRaster)) && field.Editable) && !(featureClass.SubtypeFieldName == field.Name)) { } } } } }
public void AddLayerAt(int index = -1) { Layer newLayer = GameObject.Instantiate(layerPrefab, layerParent).GetComponent <Layer>(); SpriteMask newMask = GameObject.Instantiate(maskPrefab, maskParent).GetComponent <SpriteMask>(); newLayer.Setup(); LayerObject newPiece = new LayerObject() { layer = newLayer, mask = newMask }; if (layers.Count == 0 || index >= layers.Count || index <= 0) { layers.Add(newPiece); } else { layers.Insert(index, newPiece); newPiece.setSize(newPiece.layer.transform, layers[index - 1].layer.transform.localScale.x); newPiece.setSize(newPiece.mask.transform, layers[index - 1].mask.transform.localScale.x); } SizeOfWorld = layers.Count; }
//private List<GameObject> objects public void GenerateLayer(RoomData room) { // Destroy all objects in here... foreach (KeyValuePair <string, LayerObject> item in layerObjects) { item.Value.destroy(); } layerObjects = new Dictionary <string, LayerObject>(); foreach (ItemData item in Items) { // Ok this generates tiles.. f**k them if ( layerType == Constants.LAYER_TYPES.BACKGROUND_1 || layerType == Constants.LAYER_TYPES.BACKGROUND_2 || layerType == Constants.LAYER_TYPES.FOREGROUND_1 || layerType == Constants.LAYER_TYPES.FOREGROUND_2 ) { if (layerObjects.ContainsKey(item.SpriteSheet)) { LayerObject mo = layerObjects[item.SpriteSheet]; mo.addItem(item); } else { GameObject mogobj = new GameObject(); mogobj.transform.parent = room.getRoomObject().transform; mogobj.name = layerType + "_" + item.SpriteSheet; MaterialObject mo = (MaterialObject)mogobj.AddComponent(typeof(MaterialObject)); mo.spriteSheetName = item.SpriteSheet; mo.spriteSheetPath = item.SheetPath; mo.posx = room.PositionX; mo.posy = room.PositionY; mo.posz = Constants.LayerNameToZIndex(this.layerType); mo.height = room.Height; mo.width = room.Width; mo.gameObject.SetActive(this.active); mo.addItem(item); layerObjects.Add(item.SpriteSheet, mo); } // Colliders work differently...in that, we will have a new object for every collider... } else if (layerType == Constants.LAYER_TYPES.COLLIDERS) { GameObject colObj = new GameObject(); colObj.transform.position = new Vector3(item.PositionX, item.PositionY, Constants.LayerNameToZIndex(this.layerType)); colObj.transform.parent = room.getRoomObject().transform; float height = 32 * item.ScaleY; float width = 32 * item.ScaleX; float offset = 0; colObj.layer = Constants.COLLIDER_BOX_LAYER; if (item.Rotation != 0) { colObj.tag = Constants.TAG_COLLIDER_STAIR; Vector3 bottomLeft = new Vector3(colObj.transform.position.x, colObj.transform.position.y + 16, 0); Vector3 topRight = new Vector3(colObj.transform.position.x + width, colObj.transform.position.y + height + 16, 0); offset = Vector3.Distance(bottomLeft, topRight); if (height > width) { colObj.transform.localScale = new Vector3(width, offset, Constants.ColliderZSize); } else { colObj.transform.localScale = new Vector3(offset, height, Constants.ColliderZSize); } } else { colObj.tag = Constants.TAG_COLLIDER_BOX; colObj.transform.localScale = new Vector3(width, height, Constants.ColliderZSize); } colObj.name = "Collider_" + item.PositionX + "_" + item.PositionY; BoxCollider bc = (BoxCollider)colObj.AddComponent(typeof(BoxCollider)); bc.isTrigger = false; bc.center = new Vector3(.5f, .5f, 1.5f); Sprite so = (Sprite)colObj.AddComponent(typeof(Sprite)); so.auto_resize = false; so.setSpriteSheetName(item.SpriteSheet); so.setSpriteSheetPath(item.SheetPath); so.setRotation(item.Rotation); so.setScaleX(item.ScaleX); so.setScaleY(item.ScaleY); so.setScaleZ(Constants.ColliderZSize); so.setTargetFrame(item.TargetFrame); // new sprite, we need to set all of the pertinant values.... layerObjects.Add(colObj.name, so); } } //Colliders are more fun... //if(){ //} //if(this.layerType == Constants.LAYER_TYPES.BACKGROUND_1){ // Debug.Log("Generate Layer: Count: " + thisLayerMaterialObjects.Count); //} }
internal static global::System.Runtime.InteropServices.HandleRef getCPtr(LayerObject obj) { return((obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr); }
private void cboLayer_SelectedIndexChanged(object sender, EventArgs e) { this.m_pVertXtraGrid.Clear(); if (this.cboLayer.SelectedIndex != -1) { LayerObject selectedItem = this.cboLayer.SelectedItem as LayerObject; IFeatureLayer pLayer = selectedItem.Layer as IFeatureLayer; this.m_pFeatLayer = pLayer; if (pLayer != null) { ICursor cursor; (pLayer as IFeatureSelection).SelectionSet.Search(null, false, out cursor); IList <IRow> pLists = new List <IRow>(); for (IRow row = cursor.NextRow(); row != null; row = cursor.NextRow()) { pLists.Add(row); } ComReleaser.ReleaseCOMObject(cursor); IFields fields = pLayer.FeatureClass.Fields; string[] strArray = new string[2]; ISubtypes featureClass = pLayer.FeatureClass as ISubtypes; IDomain domain = null; for (int i = 0; i < fields.FieldCount; i++) { IField pField = fields.get_Field(i); if (this.CheckFieldIsVisible(pLayer, pField)) { strArray[0] = pField.AliasName; if (pField.Type == esriFieldType.esriFieldTypeGeometry) { strArray[1] = this.GetShapeString(pField); this.m_pVertXtraGrid.AddTextEdit(strArray[0], strArray[1], true); } else if (pField.Type == esriFieldType.esriFieldTypeBlob) { strArray[1] = "<二进制数据>"; this.m_pVertXtraGrid.AddTextEdit(strArray[0], strArray[1], true); } else if ((pField.Type != esriFieldType.esriFieldTypeOID) && pField.Editable) { int num3; double minValue; double maxValue; ICodedValueDomain domain2 = null; IList list2 = new ArrayList(); if ((featureClass != null) && featureClass.HasSubtype) { if (featureClass.SubtypeFieldName == pField.Name) { int num2; if (this.CheckValueIsEqual(pLists, i)) { object obj4 = pLists[0].get_Value(i); if (obj4 is DBNull) { strArray[1] = "<空>"; } else { try { strArray[1] = featureClass.get_SubtypeName( (pLists[0] as IRowSubtypes).SubtypeCode); } catch { strArray[1] = obj4.ToString(); } } } else { strArray[1] = "<空>"; } IEnumSubtype subtypes = featureClass.Subtypes; subtypes.Reset(); for (string str = subtypes.Next(out num2); str != null; str = subtypes.Next(out num2)) { list2.Add(str); } this.m_pVertXtraGrid.AddComBoBox(strArray[0], strArray[1], list2, !pField.Editable); } else { domain = featureClass.get_Domain((pLists[0] as IRowSubtypes).SubtypeCode, pField.Name); if (domain is ICodedValueDomain) { domain2 = domain as ICodedValueDomain; if (pField.IsNullable) { list2.Add("<空>"); } if (this.CheckValueIsEqual(pLists, i)) { strArray[1] = pLists[0].get_Value(i).ToString(); } else { strArray[1] = "<空>"; } num3 = 0; while (num3 < domain2.CodeCount) { list2.Add(domain2.get_Name(num3)); if (strArray[1] == domain2.get_Value(num3).ToString()) { strArray[1] = domain2.get_Name(num3); } num3++; } this.m_pVertXtraGrid.AddComBoBox(strArray[0], strArray[1], list2, !pField.Editable); } else { if (this.CheckValueIsEqual(pLists, i)) { strArray[1] = pLists[0].get_Value(i).ToString(); } else { strArray[1] = "<空>"; } if ((((pField.Type == esriFieldType.esriFieldTypeSmallInteger) || (pField.Type == esriFieldType.esriFieldTypeSingle)) || (pField.Type == esriFieldType.esriFieldTypeDouble)) || (pField.Type == esriFieldType.esriFieldTypeInteger)) { minValue = 0.0; maxValue = 0.0; if (domain is IRangeDomain) { minValue = (double)(domain as IRangeDomain).MinValue; maxValue = (double)(domain as IRangeDomain).MaxValue; } if (pField.Editable) { this.m_pVertXtraGrid.AddSpinEdit(strArray[0], strArray[1], false, minValue, maxValue); } else { this.m_pVertXtraGrid.AddTextEdit(strArray[0], strArray[1], true); } } else if (pField.Type == esriFieldType.esriFieldTypeDate) { this.m_pVertXtraGrid.AddDateEdit(strArray[0], strArray[1], !pField.Editable); } else { if (this.CheckValueIsEqual(pLists, i)) { strArray[1] = pLists[0].get_Value(i).ToString(); } else { strArray[1] = "<空>"; } this.m_pVertXtraGrid.AddTextEdit(strArray[0], strArray[1], !pField.Editable); } } } } else { domain = pField.Domain; if (domain != null) { if (domain is ICodedValueDomain) { domain2 = domain as ICodedValueDomain; if (pField.IsNullable) { list2.Add("<空>"); } if (this.CheckValueIsEqual(pLists, i)) { strArray[1] = pLists[0].get_Value(i).ToString(); } else { strArray[1] = "<空>"; } num3 = 0; while (num3 < domain2.CodeCount) { list2.Add(domain2.get_Name(num3)); if (strArray[1] == domain2.get_Value(num3).ToString()) { strArray[1] = domain2.get_Name(num3); } num3++; } this.m_pVertXtraGrid.AddComBoBox(strArray[0], strArray[1], list2, !pField.Editable); } else { if (this.CheckValueIsEqual(pLists, i)) { strArray[1] = pLists[0].get_Value(i).ToString(); } else { strArray[1] = "<空>"; } if ((((pField.Type == esriFieldType.esriFieldTypeSmallInteger) || (pField.Type == esriFieldType.esriFieldTypeSingle)) || (pField.Type == esriFieldType.esriFieldTypeDouble)) || (pField.Type == esriFieldType.esriFieldTypeInteger)) { minValue = 0.0; maxValue = 0.0; if (domain is IRangeDomain) { minValue = (double)(domain as IRangeDomain).MinValue; maxValue = (double)(domain as IRangeDomain).MaxValue; } if (pField.Editable) { this.m_pVertXtraGrid.AddSpinEdit(strArray[0], strArray[1], false, minValue, maxValue); } else { this.m_pVertXtraGrid.AddTextEdit(strArray[0], strArray[1], true); } } else if (pField.Type == esriFieldType.esriFieldTypeDate) { this.m_pVertXtraGrid.AddDateEdit(strArray[0], strArray[1], !pField.Editable); } else { this.m_pVertXtraGrid.AddTextEdit(strArray[0], strArray[1], !pField.Editable); } } } else { if (this.CheckValueIsEqual(pLists, i)) { strArray[1] = pLists[0].get_Value(i).ToString(); } else { strArray[1] = "<空>"; } string name = (pLayer.FeatureClass as IDataset).Name; NameValueCollection codeDomain = CodeDomainManage.GetCodeDomain(pField.Name, name); if (codeDomain.Count > 0) { if (pField.IsNullable) { list2.Add("<空>"); } for (num3 = 0; num3 < codeDomain.Count; num3++) { string str3 = codeDomain.Keys[num3]; list2.Add(str3); if (strArray[1] == codeDomain[str3]) { strArray[1] = str3; } } this.m_pVertXtraGrid.AddComBoBox(strArray[0], strArray[1], list2, !pField.Editable); } else if ((((pField.Type == esriFieldType.esriFieldTypeSmallInteger) || (pField.Type == esriFieldType.esriFieldTypeSingle)) || (pField.Type == esriFieldType.esriFieldTypeDouble)) || (pField.Type == esriFieldType.esriFieldTypeInteger)) { if (pField.Editable) { this.m_pVertXtraGrid.AddSpinEdit(strArray[0], strArray[1], false, 0.0, 0.0); } else { this.m_pVertXtraGrid.AddTextEdit(strArray[0], strArray[1], true); } } else if (pField.Type == esriFieldType.esriFieldTypeDate) { this.m_pVertXtraGrid.AddDateEdit(strArray[0], strArray[1], !pField.Editable); } else { this.m_pVertXtraGrid.AddTextEdit(strArray[0], strArray[1], !pField.Editable); } } } } } } } } }
private void gridView1_CellValueChanged(object sender, CellValueChangedEventArgs e) { if (this.m_CanDo) { if (this.m_pFeatLayer == null) { LayerObject selectedItem = this.cboLayer.SelectedItem as LayerObject; IFeatureLayer layer = selectedItem.Layer as IFeatureLayer; this.m_pFeatLayer = layer; } if (this.m_pFeatLayer != null) { object obj3; ISubtypes featureClass = this.m_pFeatLayer.FeatureClass as ISubtypes; GridEditorItem row = this.gridView1.GetRow(e.RowHandle) as GridEditorItem; int index = this.m_pFeatLayer.FeatureClass.Fields.FindFieldByAliasName(row.Name); IField pField = this.m_pFeatLayer.FeatureClass.Fields.get_Field(index); if ((featureClass != null) && featureClass.HasSubtype) { if (featureClass.SubtypeFieldName == pField.Name) { IEnumSubtype subtypes = featureClass.Subtypes; subtypes.Reset(); int subtypeCode = 0; for (string str = subtypes.Next(out subtypeCode); str != null; str = subtypes.Next(out subtypeCode)) { if (e.Value.ToString() == str) { this.UpdateFieldValue(pField, subtypeCode); break; } } } else if (e.Value.ToString() == "<空>") { obj3 = DBNull.Value; this.UpdateFieldValue(pField, obj3); } else { this.UpdateFieldValue(pField, e.Value); } } else if (e.Value.ToString() == "<空>") { obj3 = DBNull.Value; this.UpdateFieldValue(pField, obj3); } else { int num3; string name = (this.m_pFeatLayer.FeatureClass as IDataset).Name; NameValueCollection codeDomain = CodeDomainManage.GetCodeDomain(pField.Name, name); if (codeDomain.Count > 0) { for (num3 = 0; num3 < codeDomain.Count; num3++) { string str3 = codeDomain.Keys[num3]; if (str3 == e.Value.ToString()) { this.UpdateFieldValue(pField, codeDomain[str3]); break; } } } else { IDomain domain = pField.Domain; if (domain is ICodedValueDomain) { ICodedValueDomain domain2 = domain as ICodedValueDomain; for (num3 = 0; num3 < domain2.CodeCount; num3++) { if (domain2.get_Name(num3) == e.Value.ToString()) { this.UpdateFieldValue(pField, domain2.get_Value(num3)); break; } } } else if (this.UpdateFieldValue(pField, e.Value)) { this.m_CanDo = false; this.m_CanDo = true; } } } } } }
private static string GetDescription(LayerObject layerObject) { string descr = layerObject?.descr; if (string.IsNullOrEmpty(descr)) { return(string.Empty); } // match Values for xPOIAcc if (descr.Contains('#')) { var poidesc = descr.Split('#')[1]; poidesc = poidesc.Trim('|').Replace("|", "\n"); var match = Regex.Match(poidesc, @"^(?:[^\|=:]+):([^\|=:]*)$"); if (match.Success) { poidesc = match.Groups[1].Value; } return(poidesc); } // match KVP-style description string: a=b|b=c|... for Feature Layer var m = Regex.Match(descr, @"^(?!\|)(?:\|?([^\|=]+)=([^\|]*))+$"); // no match - just return descr if (!m.Success) { return(descr); } var result = new StringBuilder(4); var message = string.Empty; for (var i = 0; i < m.Groups[1].Captures.Count; ++i) { var key = m.Groups[1].Captures[i].Value.Trim().ToUpper(); var value = m.Groups[2].Captures[i].Value.Trim(); switch (key) { // Traffic incidents case "ABSOLUTESPEED": var s = Convert.ToInt16(value); if (s > 0) { result.AppendWithSeparator(string.Format(MapLocalizer.GetString(MapStringId.ToolTipTrafficIncidentsAbsoluteSpeed), s), Environment.NewLine); } break; case "MESSAGE": message = value; break; case "LENGTH": result.AppendWithSeparator(string.Format(MapLocalizer.GetString(MapStringId.ToolTipTrafficIncidentsLength), Convert.ToDouble(value) / 1000), Environment.NewLine); break; case "DELAY": result.AppendWithSeparator(string.Format(MapLocalizer.GetString(MapStringId.ToolTipTrafficIncidentsDelay), Math.Round(Convert.ToDouble(value) / 60)), Environment.NewLine); break; // Truck attributes case "TOTALPERMITTEDWEIGHT": result.AppendWithSeparator(string.Format(MapLocalizer.GetString(MapStringId.ToolTipTruckAttributesTotalPermittedWeight), Convert.ToDouble(value)), Environment.NewLine); break; case "LOADTYPE": switch (value) { case "0": value = MapLocalizer.GetString(MapStringId.ToolTipTruckAttributesLoadTypePassenger); break; case "1": value = MapLocalizer.GetString(MapStringId.ToolTipTruckAttributesLoadTypeGoods); break; default: value = MapLocalizer.GetString(MapStringId.ToolTipTruckAttributesLoadTypeMixed); break; } result.AppendWithSeparator(string.Format(MapLocalizer.GetString(MapStringId.ToolTipTruckAttributesLoadType), value), Environment.NewLine); break; case "MAXHEIGHT": result.AppendWithSeparator(string.Format(MapLocalizer.GetString(MapStringId.ToolTipTruckAttributesMaxHeight), Convert.ToDouble(value) / 100), Environment.NewLine); break; case "MAXWEIGHT": result.AppendWithSeparator(string.Format(MapLocalizer.GetString(MapStringId.ToolTipTruckAttributesMaxWeight), Convert.ToDouble(value)), Environment.NewLine); break; case "MAXWIDTH": result.AppendWithSeparator(string.Format(MapLocalizer.GetString(MapStringId.ToolTipTruckAttributesMaxWidth), Convert.ToDouble(value) / 100), Environment.NewLine); break; case "MAXLENGTH": result.AppendWithSeparator(string.Format(MapLocalizer.GetString(MapStringId.ToolTipTruckAttributesMaxLength), Convert.ToDouble(value) / 100), Environment.NewLine); break; case "MAXAXLELOAD": result.AppendWithSeparator(string.Format(MapLocalizer.GetString(MapStringId.ToolTipTruckAttributesMaxAxleLoad), Convert.ToDouble(value)), Environment.NewLine); break; case "HAZARDOUSTOWATERS": result.AppendWithSeparator(MapLocalizer.GetString(MapStringId.ToolTipTruckAttributesHazardousToWaters), Environment.NewLine); break; case "HAZARDOUSGOODS": result.AppendWithSeparator(MapLocalizer.GetString(MapStringId.ToolTipTruckAttributesHazardousGoods), Environment.NewLine); break; case "COMBUSTIBLES": result.AppendWithSeparator(MapLocalizer.GetString(MapStringId.ToolTipTruckAttributesCombustibles), Environment.NewLine); break; case "FREEFORDELIVERY": result.AppendWithSeparator(MapLocalizer.GetString(MapStringId.ToolTipTruckAttributesFreeForDelivery), Environment.NewLine); break; case "TUNNELRESTRICTION": result.AppendWithSeparator(string.Format(MapLocalizer.GetString(MapStringId.ToolTipTruckAttributesTunnelRestriction), value), Environment.NewLine); break; } } if (!string.IsNullOrEmpty(message)) { result.AppendWithSeparator(FormatToolTip(MapLocalizer.GetString(MapStringId.ToolTipTrafficIncidentsMessage), message), Environment.NewLine); } return(result.ToString()); }
public bool SetLayerObject(LayerObject layer) { bool ret = C4dApiPINVOKE.BaseList2D_SetLayerObject(swigCPtr, LayerObject.getCPtr(layer)); return(ret); }