public ProbesDataSource(Guid guid, PointSet pointSet, Host host) : base(guid) { // set up the Ontology, a description of the kind of data we contain. // See DataSource sample for more details. OntologySpecification o = this.Ontology.Edit(); o.PrimitiveTypes.Create("RasterPatch", "GeoEntity", typeof(RasterPatch2)); this.UpdateOntology(o); EntitySpecification entitySpec = new EntitySpecification(this.Ontology.EntityTypes["GeoEntity"]); // the default entity type entity = this.EntityAuthorityReference.EntityAuthority.CreateEntity(true, entitySpec); this.pointSet = pointSet; if (pointSet.Metadata.ContainsKey("ProbePicture")) { probesHelper = new ProbesHelper(pointSet.Metadata["ProbePicture"], true); } else { probesHelper = new ProbesHelper("ProbeSample.png", false); } this.host = host; dataType = DSDataType.Table; }
public ProbesDataSource(Guid guid, IDataSource2D <double> field, Host host) : base(guid) { // set up the Ontology, a description of the kind of data we contain. // See DataSource sample for more details. OntologySpecification o = this.Ontology.Edit(); o.PrimitiveTypes.Create("RasterPatch", "GeoEntity", typeof(RasterPatch2)); this.UpdateOntology(o); EntitySpecification entitySpec = new EntitySpecification(this.Ontology.EntityTypes["GeoEntity"]); // the default entity type entity = this.EntityAuthorityReference.EntityAuthority.CreateEntity(true, entitySpec); this.wfield = field; System.Windows.Point[,] grid = wfield.Grid; Coordinate2D minCoordinate = new Coordinate2D(grid[0, 0].X, grid[0, 0].Y); Coordinate2D maxCoordinate = new Coordinate2D(grid[field.Width - 1, field.Height - 1].X, grid[field.Width - 1, field.Height - 1].Y); for (int j = 0; j < field.Height; j++) { for (int i = 0; i < field.Width; i++) { if (grid[i, j].X < minCoordinate.X) { minCoordinate.X = grid[i, j].X; } if (grid[i, j].X > maxCoordinate.X) { maxCoordinate.X = grid[i, j].X; } if (grid[i, j].Y < minCoordinate.Y) { minCoordinate.Y = grid[i, j].Y; } if (grid[i, j].Y > maxCoordinate.Y) { maxCoordinate.Y = grid[i, j].Y; } } } gridBox = new GeoRect( minCoordinate.X, minCoordinate.Y, maxCoordinate.X - minCoordinate.X, maxCoordinate.Y - minCoordinate.Y); dataType = DSDataType.TwoDim; this.host = host; probesHelper = new ProbesHelper("ProbeSample.png", false); }
public void updateFieldType(int dataIndex, DSDataType type) { if (_fields [dataIndex].type != type) { IDSData toReplace = _fields [dataIndex]; _fields.RemoveAt(dataIndex); switch (type) { case DSDataType.Bool: DSBool newBool = new DSBool(); newBool.name = toReplace.name; newBool.type = DSDataType.Bool; _fields.Insert(dataIndex, newBool); break; case DSDataType.Float: DSFloat newFloat = new DSFloat(); newFloat.name = toReplace.name; newFloat.type = DSDataType.Float; _fields.Insert(dataIndex, newFloat); break; case DSDataType.Int: DSInt newInt = new DSInt(); newInt.name = toReplace.name; newInt.type = DSDataType.Int; _fields.Insert(dataIndex, newInt); break; case DSDataType.String: DSString newString = new DSString(); newString.name = toReplace.name; newString.type = DSDataType.String; _fields.Insert(dataIndex, newString); break; } } }
public override void draw() { drawInOutPoint(); titleRect = rect; titleRect.height = 20f; extendedRect = rect; extendedRect.y = rect.y + titleRect.height - 1f; extendedRect.height = rect.height - titleRect.height; GUILayout.BeginArea(titleRect, title, GUI.skin.box); GUILayout.EndArea(); GUILayout.BeginArea(extendedRect, GUI.skin.box); GUILayout.BeginVertical(); GUILayout.Space(5f); GUILayout.BeginHorizontal(); GUILayout.Label("Type:", GUILayout.Width(50f)); actionType = (DSDataType)EditorGUILayout.EnumPopup(actionType); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label(assignValue ? "Target:" : "Target A:", GUILayout.Width(60f)); if (GUILayout.Button(targetAString)) { chooseTargetAWithDropDown(); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Assign Value:", GUILayout.Width(100f)); assignValue = EditorGUILayout.Toggle(assignValue); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label(assignValue ? "Value:" : "Target B:", GUILayout.Width(60f)); switch (actionType) { case DSDataType.Int: if (assignValue) { intInput = EditorGUILayout.IntField(intInput); } else { if (GUILayout.Button(targetBString)) { GenericMenu dropDownMenu = new GenericMenu(); for (int i = 0; i < ds.datas.Count; i++) { for (int j = 0; j < ds.datas [i].fields.Count; j++) { if (ds.datas [i].fields [j].type == DSDataType.Int) { string itemName = ds.datas [i].name + "/" + ds.datas [i].fields [j].name; DSInt item = (DSInt)ds.datas [i].fields [j]; dropDownMenu.AddItem(new GUIContent(itemName), false, () => { intTargetB = item; targetBString = itemName; }); } } } dropDownMenu.ShowAsContext(); } } break; case DSDataType.Float: if (assignValue) { floatInput = EditorGUILayout.FloatField(floatInput); } else { if (GUILayout.Button(targetBString)) { GenericMenu dropDownMenu = new GenericMenu(); for (int i = 0; i < ds.datas.Count; i++) { for (int j = 0; j < ds.datas [i].fields.Count; j++) { if (ds.datas [i].fields [j].type == DSDataType.Float) { string itemName = ds.datas [i].name + "/" + ds.datas [i].fields [j].name; DSFloat item = (DSFloat)ds.datas [i].fields [j]; dropDownMenu.AddItem(new GUIContent(itemName), false, () => { floatTargetB = item; targetBString = itemName; }); } } } dropDownMenu.ShowAsContext(); } } break; case DSDataType.Bool: if (assignValue) { boolInput = EditorGUILayout.Toggle(boolInput); } else { if (GUILayout.Button(targetBString)) { GenericMenu dropDownMenu = new GenericMenu(); for (int i = 0; i < ds.datas.Count; i++) { for (int j = 0; j < ds.datas [i].fields.Count; j++) { if (ds.datas [i].fields [j].type == DSDataType.Bool) { string itemName = ds.datas [i].name + "/" + ds.datas [i].fields [j].name; DSBool item = (DSBool)ds.datas [i].fields [j]; dropDownMenu.AddItem(new GUIContent(itemName), false, () => { boolTargetB = item; targetBString = itemName; }); } } } dropDownMenu.ShowAsContext(); } } break; case DSDataType.String: if (assignValue) { stringInput = EditorGUILayout.TextField(stringInput); } else { if (GUILayout.Button(targetBString)) { GenericMenu dropDownMenu = new GenericMenu(); for (int i = 0; i < ds.datas.Count; i++) { for (int j = 0; j < ds.datas [i].fields.Count; j++) { if (ds.datas [i].fields [j].type == DSDataType.String) { string itemName = ds.datas [i].name + "/" + ds.datas [i].fields [j].name; DSString item = (DSString)ds.datas [i].fields [j]; dropDownMenu.AddItem(new GUIContent(itemName), false, () => { stringTargetB = item; targetBString = itemName; }); } } } dropDownMenu.ShowAsContext(); } } break; } GUILayout.EndHorizontal(); GUILayout.EndVertical(); GUILayout.EndArea(); }
public override void load(string save) { string[] saveStrings = save.Split(DataSimulator.DS_SAVELOAD_SEPERATOR); actionType = (DSDataType)int.Parse(saveStrings [4]); targetAString = saveStrings [5]; assignValue = bool.Parse(saveStrings [6]); if (!string.IsNullOrEmpty(targetAString)) { string[] splitTargetAStrings = targetAString.Split('/'); string[] splitTargetBStrings = null; switch (actionType) { case DSDataType.Int: intTargetA = (DSInt)ds.datas.Find(x => x.name.Equals(splitTargetAStrings [0])).fields.Find(x => x.name.Equals(splitTargetAStrings [1])); if (assignValue) { intInput = int.Parse(saveStrings [7]); } else { targetBString = saveStrings [7]; splitTargetBStrings = targetBString.Split('/'); intTargetB = (DSInt)ds.datas.Find(x => x.name.Equals(splitTargetBStrings [0])).fields.Find(x => x.name.Equals(splitTargetBStrings [1])); } break; case DSDataType.Float: floatTargetA = (DSFloat)ds.datas.Find(x => x.name.Equals(splitTargetAStrings [0])).fields.Find(x => x.name.Equals(splitTargetAStrings [1])); if (assignValue) { floatInput = float.Parse(saveStrings [7]); } else { targetBString = saveStrings [7]; splitTargetBStrings = targetBString.Split('/'); floatTargetB = (DSFloat)ds.datas.Find(x => x.name.Equals(splitTargetBStrings [0])).fields.Find(x => x.name.Equals(splitTargetBStrings [1])); } break; case DSDataType.Bool: boolTargetA = (DSBool)ds.datas.Find(x => x.name.Equals(splitTargetAStrings [0])).fields.Find(x => x.name.Equals(splitTargetAStrings [1])); if (assignValue) { boolInput = bool.Parse(saveStrings [7]); } else { targetBString = saveStrings [7]; splitTargetBStrings = targetBString.Split('/'); boolTargetB = (DSBool)ds.datas.Find(x => x.name.Equals(splitTargetBStrings [0])).fields.Find(x => x.name.Equals(splitTargetBStrings [1])); } break; case DSDataType.String: stringTargetA = (DSString)ds.datas.Find(x => x.name.Equals(splitTargetAStrings [0])).fields.Find(x => x.name.Equals(splitTargetAStrings [1])); if (assignValue) { stringInput = saveStrings [7]; } else { targetBString = saveStrings [7]; splitTargetBStrings = targetBString.Split('/'); stringTargetB = (DSString)ds.datas.Find(x => x.name.Equals(splitTargetBStrings [0])).fields.Find(x => x.name.Equals(splitTargetBStrings [1])); } break; } } }
public ProbesDataSource(Guid guid, PointSet pointSet, Host host) : base(guid) { // set up the Ontology, a description of the kind of data we contain. // See DataSource sample for more details. OntologySpecification o = this.Ontology.Edit(); o.PrimitiveTypes.Create("RasterPatch", "GeoEntity", typeof(RasterPatch2)); this.UpdateOntology(o); EntitySpecification entitySpec = new EntitySpecification(this.Ontology.EntityTypes["GeoEntity"]); // the default entity type entity = this.EntityAuthorityReference.EntityAuthority.CreateEntity(true, entitySpec); this.pointSet = pointSet; if (pointSet.Metadata.ContainsKey("ProbePicture")) probesHelper = new ProbesHelper(pointSet.Metadata["ProbePicture"], true); else probesHelper = new ProbesHelper("ProbeSample.png", false); this.host = host; dataType = DSDataType.Table; }
public ProbesDataSource(Guid guid, IDataSource2D<double> field, Host host) : base(guid) { // set up the Ontology, a description of the kind of data we contain. // See DataSource sample for more details. OntologySpecification o = this.Ontology.Edit(); o.PrimitiveTypes.Create("RasterPatch", "GeoEntity", typeof(RasterPatch2)); this.UpdateOntology(o); EntitySpecification entitySpec = new EntitySpecification(this.Ontology.EntityTypes["GeoEntity"]); // the default entity type entity = this.EntityAuthorityReference.EntityAuthority.CreateEntity(true, entitySpec); this.wfield = field; System.Windows.Point[,] grid = wfield.Grid; Coordinate2D minCoordinate = new Coordinate2D(grid[0, 0].X, grid[0, 0].Y); Coordinate2D maxCoordinate = new Coordinate2D(grid[field.Width - 1, field.Height - 1].X, grid[field.Width - 1, field.Height - 1].Y); for (int j = 0; j < field.Height; j++) { for (int i = 0; i < field.Width; i++) { if (grid[i, j].X < minCoordinate.X) minCoordinate.X = grid[i, j].X; if (grid[i, j].X > maxCoordinate.X) maxCoordinate.X = grid[i, j].X; if (grid[i, j].Y < minCoordinate.Y) minCoordinate.Y = grid[i, j].Y; if (grid[i, j].Y > maxCoordinate.Y) maxCoordinate.Y = grid[i, j].Y; } } gridBox = new GeoRect( minCoordinate.X, minCoordinate.Y, maxCoordinate.X - minCoordinate.X, maxCoordinate.Y - minCoordinate.Y); dataType = DSDataType.TwoDim; this.host = host; probesHelper = new ProbesHelper("ProbeSample.png", false); }
private void drawDataField(DSDataField data) { for (int i = 0; i < data.fields.Count; i++) { try { GUILayout.BeginHorizontal(); data.fields [i].name = GUILayout.TextField(data.fields [i].name, GUILayout.Width(80f)); DSDataType dataType = data.fields [i].type; dataType = (DSDataType)EditorGUILayout.EnumPopup(dataType, GUILayout.Width(50f)); data.updateFieldType(i, dataType); switch (data.fields [i].type) { case DSDataType.Bool: GUILayout.Space(70f); DSBool boolField = (DSBool)data.fields[i]; boolField.value = EditorGUILayout.Toggle(boolField.value); break; case DSDataType.Float: DSFloat floatField = (DSFloat)data.fields[i]; GUILayout.Label("Random", GUILayout.Width(50f)); floatField.isRandom = EditorGUILayout.Toggle(floatField.isRandom, GUILayout.Width(20f)); if (floatField.isRandom) { floatField.minValue = EditorGUILayout.FloatField(floatField.minValue, GUILayout.Width(50f)); GUILayout.Label(" -", GUILayout.Width(20f)); floatField.maxValue = EditorGUILayout.FloatField(floatField.maxValue, GUILayout.Width(50f)); } else { floatField.value = EditorGUILayout.FloatField(floatField.value, GUILayout.Width(50f)); } break; case DSDataType.Int: DSInt intField = (DSInt)data.fields[i]; GUILayout.Label("Random", GUILayout.Width(50f)); intField.isRandom = EditorGUILayout.Toggle(intField.isRandom, GUILayout.Width(20f)); if (intField.isRandom) { intField.minValue = EditorGUILayout.IntField(intField.minValue, GUILayout.Width(50f)); GUILayout.Label(" -", GUILayout.Width(20f)); intField.maxValue = EditorGUILayout.IntField(intField.maxValue, GUILayout.Width(50f)); } else { intField.value = EditorGUILayout.IntField(intField.value, GUILayout.Width(50f)); } break; case DSDataType.String: DSString stringField = (DSString)data.fields[i]; if (string.IsNullOrEmpty(stringField.value)) { stringField.value = ""; } stringField.value = GUILayout.TextField(stringField.value); break; } if (GUILayout.Button("-", GUILayout.Width(20))) { data.removeField(i); } GUILayout.EndHorizontal(); } catch (ArgumentOutOfRangeException ex) { // do nothing } catch (Exception ex) { Debug.Log(ex.Message); } } }