public void TestSolveNormalEquation() { double[][] featuresData = new[] { new[] { 1.00000, 18894.75675, 14226.78803 }, new[] { 1.00000, 12831.49749, 16721.15369 }, new[] { 1.00000, 9661.92668, 13113.96006 } }; double[][] valuesdata = new[] { new[] { 2.1449, 2.1487 }, new[] { 3.1759, 1.5399 }, new[] { 4.9241, 1.6036 } }; double[][] expectedData = new[] { new[] { 10.77471486, 1.962502184 }, new [] { -0.00027134, 0.000068413 }, new [] { -0.00024623, -0.000077773 } }; Matrix samples = Matrix.CreateInstance(featuresData); Matrix values = Matrix.CreateInstance(valuesdata); Matrix expected = Matrix.CreateInstance(expectedData); Matrix result = AlignmentModel.SolveNormalEquation(samples, values); System.Diagnostics.Debug.WriteLine(samples.ToString()); System.Diagnostics.Debug.WriteLine(values.ToString()); System.Diagnostics.Debug.WriteLine(expected.ToString()); System.Diagnostics.Debug.WriteLine(result.ToString()); Assert.IsTrue(result.IsEqualTo(expected, 0.0001)); }
private string BuildRequirementText(Guid requirementId, string requirementComparison, double requirementValue) { string text; string tableName; RequirementModel reqModel; text = ""; //text = RequirementModel.GetNameFromId(requirementId) + " " + requirementComparison + " " + requirementValue.ToString(); reqModel = new RequirementModel(); reqModel.Initialize(requirementId); tableName = TableNamesModel.GetTableNameFromId(reqModel.TableNamesId); if (tableName == "Ability") { text = AbilityModel.GetNameFromId(reqModel.ApplytoId) + " " + requirementComparison + " " + requirementValue.ToString(); } else if (tableName == "Alignments") { text = "Alignment: " + requirementComparison + " " + AlignmentModel.GetNameFromID(reqModel.ApplytoId); } else if (tableName == "Attribute") { text = AttributeModel.GetNameFromId(reqModel.ApplytoId) + " " + requirementComparison + " " + requirementValue.ToString(); } else if (tableName == "Character") { text = "Character " + requirementComparison + " Level " + requirementValue.ToString(); } else if (tableName == "Class") { text = ClassModel.GetNameFromId(reqModel.ApplytoId) + " " + requirementComparison + " Level " + requirementValue.ToString(); } else if (tableName == "Enhancement") { text = "Enhnacement: " + EnhancementModel.GetNameFromId(reqModel.ApplytoId) + " " + requirementComparison + " Rank " + requirementValue.ToString(); } else if (tableName == "EnhancementSlot") { text = "Enhancement Slot: " + BuildSlotName(reqModel.ApplytoId) + " " + requirementComparison + " Rank " + requirementValue.ToString(); } else if (tableName == "Feat") { text = "Feat: " + FeatModel.GetNameFromId(reqModel.ApplytoId); } else if (tableName == "Race") { text = RaceModel.GetNameFromId(reqModel.ApplytoId) + " " + requirementComparison + " Level " + requirementValue.ToString(); } else if (tableName == "Skill") { text = SkillModel.GetNameFromId(reqModel.ApplytoId) + " " + requirementComparison + " " + requirementValue.ToString(); } else { //we should not reach here Debug.WriteLine("Error: No category exists for this requirement. RequirementPanel2: BuildRequirementText()"); } return(text); }
private void AddNewRequirementRecord() { RequirementModel reqModel; string tableName; string applyToName; reqModel = new RequirementModel(); tableName = comboCategory.SelectedItem.ToString(); applyToName = comboApplyTo.SelectedItem.ToString(); reqModel.TableNamesId = TableNamesModel.GetIdFromTableName(tableName); if (tableName == "Ability") { reqModel.ApplytoId = AbilityModel.GetIdFromName(applyToName); } else if (tableName == "Alignments") { reqModel.ApplytoId = AlignmentModel.GetIdFromName(applyToName); } else if (tableName == "Attribute") { reqModel.ApplytoId = AttributeModel.GetIdFromName(applyToName); } else if (tableName == "Class") { reqModel.ApplytoId = ClassModel.GetIdFromName(applyToName); } else if (tableName == "Enhancement") { reqModel.ApplytoId = GetEnhancementId(); } else if (tableName == "EnhancementSlot") { reqModel.ApplytoId = GetSlotId(); } else if (tableName == "Feat") { reqModel.ApplytoId = FeatModel.GetIdFromName(applyToName); } else if (tableName == "Race") { reqModel.ApplytoId = RaceModel.GetIdFromName(applyToName); } else if (tableName == "Skill") { reqModel.ApplytoId = SkillModel.GetIdFromName(applyToName); } else { Debug.WriteLine("Error: CategoryName isn't listed :: RequirementDialogClass: AddNewRequirement"); } reqModel.Save(); SelectedRequirementId = reqModel.Id; }
public PlayerCharacterModel() { PlayerClass = new ClassModel(); Archetype = new ArchetypeModel(); Background = new BackgroundModel(); Race = new RaceModel(); Alignment = new AlignmentModel(); AbilityScores = new List <PcAbilityScoreModel>(); SavingThrows = new List <int>(); PlayerSkills = new List <int>(); }
static void Main(string[] args) { string fileName = @"C:/Users/Dominic/Desktop/Studium/MA4/Master-Thesis/Implementierung/blueinfrastructurecenter/testdata/LandXML/Mainbruecke_Klingenberg.xml"; LandXmlParser parser = new LandXmlParser(fileName); DigitalElevationModel digitalElevationModel = parser.DigitalElevationModel; AlignmentModel alignmentModel = parser.AlignmentModel; int number = alignmentModel.AlignmentsCount; Alignment2DBased3D alignment = alignmentModel.GetAlignmentByIndex(0); List <Alignment2DBased3D> all = alignmentModel.GetAllAlignments(); foreach (Alignment2DBased3D al in all) { System.Console.WriteLine(al.ToString()); for (double lerpParamter = 0; lerpParamter < 1.0f; lerpParamter += 0.02) { System.Console.WriteLine(lerpParamter + "; " + "(" + al.GetPosition(lerpParamter).x + "," + al.GetPosition(lerpParamter).y + ")" + " HEIGHT: " + digitalElevationModel.GetHeightAtPosition(al.GetPosition(lerpParamter).x, al.GetPosition(lerpParamter).y)); ; } } int nr = digitalElevationModel.SurfaceCount; Surface s = digitalElevationModel.GetSurface(0); nr = s.PointsCount; nr = s.FaceCount; BlueFramework.BlueCore.Math.vector3d point = s.GetPoint(0); BlueFramework.BlueCore.Math.vector3d face = s.GetFace(0); System.Console.WriteLine("Start staion: " + alignment.GetStartStation()); System.Console.WriteLine("End staion: " + alignment.GetEndStation()); System.Console.WriteLine("Position: " + alignment.GetPosition(0.1).x + "," + alignment.GetPosition(0.1).y + "," + alignment.GetPosition(0.1).z ); HorizontalAlignmentElement2DClothoid c = new HorizontalAlignmentElement2DClothoid(); for (double lerpParamter = 0; lerpParamter < 1.0f; lerpParamter += 0.02) { System.Console.WriteLine(lerpParamter + "; " + "(" + c.GetPosition(lerpParamter).x + "," + c.GetPosition(lerpParamter).y + ")"); } System.Console.ReadLine(); }
private Guid GetApplyToId() { Guid applyToId; string tableName; applyToId = Guid.Empty; tableName = comboCategory.SelectedItem.ToString(); if (tableName == "Ability") { applyToId = AbilityModel.GetIdFromName(comboApplyTo.SelectedItem.ToString()); } if (tableName == "Alignments") { applyToId = AlignmentModel.GetIdFromName(comboApplyTo.SelectedItem.ToString()); } if (tableName == "Attribute") { applyToId = AttributeModel.GetIdFromName(comboApplyTo.SelectedItem.ToString()); } if (tableName == "Character") { applyToId = Guid.Empty; } if (tableName == "Class") { applyToId = ClassModel.GetIdFromName(comboApplyTo.SelectedItem.ToString()); } if (tableName == "Enhancement") { applyToId = GetEnhancementId(); } if (tableName == "EnhancementSlot") { applyToId = GetSlotId(); } if (tableName == "Feat") { applyToId = FeatModel.GetIdFromName(comboApplyTo.SelectedItem.ToString()); } if (tableName == "Race") { applyToId = RaceModel.GetIdFromName(comboApplyTo.SelectedItem.ToString()); } if (tableName == "Skill") { applyToId = SkillModel.GetIdFromName(comboApplyTo.SelectedItem.ToString()); } return(applyToId); }
/// <summary> /// Load the data for this class /// </summary> private void LoadData() { List <AlignmentModel> Alignments; Alignments = AlignmentModel.GetAll(); AlignmentNames = new List <string>(); Alignment = new SortedDictionary <Guid, string>(); AlignmentbyName = new SortedDictionary <string, Guid>(); foreach (AlignmentModel newModel in Alignments) { AlignmentNames.Add(newModel.Name); Alignment.Add(newModel.Id, newModel.Name); AlignmentbyName.Add(newModel.Name, newModel.Id); } }
public PlayerCharacterModel() { AbilityScores = new List <PcAbilityScoreModel>(); Alignment = new AlignmentModel(); Archetype = new ArchetypeModel(); Background = new BackgroundModel(); PlayerClass = new ClassModel(); Equipment = new List <PcEquipmentModel>(); Features = new List <FeatureModel>(); Player = new PlayerModel(); Race = new RaceModel(); SavingThrows = new List <int>(); PlayerSkills = new List <int>(); Spells = new List <PcSpellModel>(); SpellLevels = new List <PcSpellLevelModel>(); Traits = new List <TraitModel>(); Treasure = new List <PcTreasureModel>(); }
private void OnAlignmentEditButtonClick(object sender, EventArgs e) { List <AlignmentModel> alignments; //set up the window AlignmentEditWindow = new CheckedListBoxEditWindow(); AlignmentEditWindow.SetSaveEvent(OnAlignmentEditSaveButtonClick); AlignmentEditWindow.SetCancelEvent(OnAlignmentEditCancelButtonClick); alignments = AlignmentModel.GetAll(); foreach (AlignmentModel alignment in alignments) { AlignmentEditWindow.AddCheckbox(alignment.Name, AlignmentsAllowedListBox.Items.Contains(alignment.Name)); } AlignmentEditWindow.Show(this); AlignmentEditWindow.Left = this.Left + ChildWindowLocation.X; AlignmentEditWindow.Top = this.Top + ChildWindowLocation.Y; }
private void OnAlignmentEditSaveButtonClick(object sender, EventArgs e) { List <AlignmentModel> alignments; alignments = AlignmentModel.GetAll(); Model.AllowedAlignments = new List <AlignmentModel>(); for (int i = 0; i < alignments.Count; i++) { if (AlignmentEditWindow.GetCheckboxStatus(i) == true) { Model.AllowedAlignments.Add(alignments[i]); } } //update the allowed allignments list box AlignmentsAllowedListBox.Items.Clear(); foreach (AlignmentModel alignment in Model.AllowedAlignments) { AlignmentsAllowedListBox.Items.Add(alignment.Name); } DataHasChanged = true; AlignmentEditWindow.Close(); }
private string GetApplyToName(Guid requirementId) { string applyToName; string tableName; RequirementModel reqModel; EnhancementModel enhancementModel; reqModel = GetRequirementModel(requirementId); //tableName = "Class"; tableName = TableNamesModel.GetTableNameFromId(reqModel.TableNamesId); if (tableName == "Ability") { applyToName = AbilityModel.GetNameFromId(reqModel.ApplytoId); } else if (tableName == "Alignments") { applyToName = AlignmentModel.GetNameFromID(reqModel.ApplytoId); } else if (tableName == "Attribute") { applyToName = AttributeModel.GetNameFromId(reqModel.ApplytoId); } else if (tableName == "Character") { applyToName = "Level"; } else if (tableName == "Class") { applyToName = ClassModel.GetNameFromId(reqModel.ApplytoId); } else if (tableName == "Enhancement") { //"Pos " + model.DisplayOrder.ToString() + ":: " + model.Name) enhancementModel = new EnhancementModel(); enhancementModel.Initialize(reqModel.ApplytoId); applyToName = "Pos " + enhancementModel.DisplayOrder + ":: " + enhancementModel.Name; } else if (tableName == "EnhancementSlot") { applyToName = BuildSlotName(GetSlotModel(requirementId)); } else if (tableName == "Feat") { applyToName = FeatModel.GetNameFromId(reqModel.ApplytoId); } else if (tableName == "Race") { applyToName = RaceModel.GetNameFromId(reqModel.ApplytoId); } else if (tableName == "Skill") { applyToName = SkillModel.GetNameFromId(reqModel.ApplytoId); } else { applyToName = ""; } Debug.WriteLine("ApplyToName = " + applyToName); return(applyToName); }
private void comboCategory_SelectedIndexChanged(object sender, EventArgs e) { string categoryName; categoryName = comboCategory.SelectedItem.ToString(); ApplyToNames.Clear(); comboApplyTo.Items.Clear(); comboTree.Items.Clear(); //resize our form this.Size = new Size(DefaultWidth, DefaultHeight); //hide our optional controls labelTree.Visible = false; comboTree.Visible = false; labelSlot.Visible = false; comboSlot.Visible = false; if (categoryName == "Ability") { ApplyToNames = AbilityModel.GetNames(); labelApplyTo.Text = "Select an Ability"; } else if (categoryName == "Alignments") { ApplyToNames = AlignmentModel.GetNames(); labelApplyTo.Text = "Select an Alignment"; } else if (categoryName == "Attribute") { ApplyToNames = AttributeModel.GetNames(); labelApplyTo.Text = "Select an Attribute"; } else if (categoryName == "Character") { ApplyToNames.Add("Level"); labelApplyTo.Text = "Select Character Property"; } else if (categoryName == "Class") { ApplyToNames = ClassModel.GetNames(); labelApplyTo.Text = "Select a Class"; } else if (categoryName == "Enhancement") { //lets resie our form to make room for other controls this.Size = new Size(DefaultWidth, DefaultHeight + 99); labelTree.Visible = true; comboTree.Visible = true; labelSlot.Visible = true; comboSlot.Visible = true; TreeNames = EnhancementTreeModel.GetNames(); foreach (string name in TreeNames) { comboTree.Items.Add(name); } labelApplyTo.Text = "Select an Enhancement"; buttonOk.Enabled = false; return; } else if (categoryName == "EnhancementSlot") { //lets resize our form to make room for other controls this.Size = new Size(DefaultWidth, DefaultHeight + 47); labelTree.Visible = true; comboTree.Visible = true; TreeNames = EnhancementTreeModel.GetNames(); foreach (string name in TreeNames) { comboTree.Items.Add(name); } labelApplyTo.Text = "Select an Enhancement Slot"; buttonOk.Enabled = false; return; } else if (categoryName == "Feat") { ApplyToNames = FeatModel.GetNames(); labelApplyTo.Text = "Select a Feat"; } else if (categoryName == "Race") { ApplyToNames = RaceModel.GetNames(); labelApplyTo.Text = "Select a Race"; } else if (categoryName == "Skill") { ApplyToNames = SkillModel.GetNames(); labelApplyTo.Text = "Select a Skill"; } else { Debug.WriteLine("Error: No category exists for the one selected. RequirementDialogClass : comboCategory_SelectedIndexChanged()"); return; } foreach (string name in ApplyToNames) { comboApplyTo.Items.Add(name); } buttonOk.Enabled = false; }
public void Initialise() { model = new AlignmentModel(latitude, longitude, elevation) { IsAlignmentOn = true }; model.ClearAlignmentPoints(); utcOffset = new TimeSpan(); // NW DateTime syncTime = new DateTime(2020, 06, 28, 16, 43, 18); TimeRecord time = new TimeRecord(syncTime, TimeUtils.GetLocalSiderealTime(syncTime, utcOffset, longitude)); model.AddAlignmentPoint(new double[] { 1.45234227180481, 60.3347473144531 }, new double[] { 144.945062700193, 60.3347473144531 }, new double[] { 149.723756536623, 59.1249432487836 }, time); syncTime = new DateTime(2020, 06, 28, 16, 43, 48); time = new TimeRecord(syncTime, TimeUtils.GetLocalSiderealTime(syncTime, utcOffset, longitude)); model.AddAlignmentPoint(new double[] { 2.86930561065674, 55.9740562438965 }, new double[] { 123.819627432618, 55.9740562438965 }, new double[] { 128.404096999038, 55.283421763509 }, time); syncTime = new DateTime(2020, 06, 28, 16, 44, 08); time = new TimeRecord(syncTime, TimeUtils.GetLocalSiderealTime(syncTime, utcOffset, longitude)); model.AddAlignmentPoint(new double[] { 2.08612251281738, 72.5127334594727 }, new double[] { 135.650906194933, 72.5127334594727 }, new double[] { 143.329091832532, 71.5666812294945 }, time); //model.AddAlignmentPoint(new double[]{1.93080902099609, 63.763801574707}, new double[] { 138.060159151908, 63.763801574707 }, new double[] { 143.482011096669, 62.7368181631223 }, new DateTime(2020, 06, 28, 16, 44, 27)); //// SW syncTime = new DateTime(2020, 06, 28, 16, 45, 06); time = new TimeRecord(syncTime, TimeUtils.GetLocalSiderealTime(syncTime, utcOffset, longitude)); model.AddAlignmentPoint(new double[] { 7.5975866317749, 31.8432216644287 }, new double[] { 53.2216111482121, 31.8432216644287 }, new double[] { 56.0429603483716, 31.4201609110561 }, time); syncTime = new DateTime(2020, 06, 28, 16, 45, 43); time = new TimeRecord(syncTime, TimeUtils.GetLocalSiderealTime(syncTime, utcOffset, longitude)); model.AddAlignmentPoint(new double[] { 5.93735456466675, 7.40935134887695 }, new double[] { 78.2768689906225, 7.40935134887695 }, new double[] { 81.0690819058243, 7.01751946987766 }, time); syncTime = new DateTime(2020, 06, 28, 16, 46, 09); time = new TimeRecord(syncTime, TimeUtils.GetLocalSiderealTime(syncTime, utcOffset, longitude)); model.AddAlignmentPoint(new double[] { 7.67223644256592, 5.17215204238892 }, new double[] { 52.3623042968102, 5.17215204238892 }, new double[] { 54.9750315780859, 4.46534644056118 }, time); // model.AddAlignmentPoint(new double[]{7.32045793533325, 16.5029945373535}, new double[] { 57.7312421342358, 16.5029945373535 }, new double[] { 60.4098738774835, 15.9579469987893 }, new DateTime(2020, 06, 28, 16, 46, 31)); ////SE syncTime = new DateTime(2020, 06, 28, 16, 47, 51); time = new TimeRecord(syncTime, TimeUtils.GetLocalSiderealTime(syncTime, utcOffset, longitude)); model.AddAlignmentPoint(new double[] { 13.0530576705933, 10.8525428771973 }, new double[] { 152.075877884869, 169.147457122803 }, new double[] { 152.72162571714, 171.563163746142 }, time); syncTime = new DateTime(2020, 06, 28, 16, 48, 09); time = new TimeRecord(syncTime, TimeUtils.GetLocalSiderealTime(syncTime, utcOffset, longitude)); model.AddAlignmentPoint(new double[] { 12.3489561080933, -0.778456687927246 }, new double[] { 162.71580699319, 180.778456687927 }, new double[] { 163.926678775838, 183.082432087453 }, time); syncTime = new DateTime(2020, 06, 28, 16, 48, 28); time = new TimeRecord(syncTime, TimeUtils.GetLocalSiderealTime(syncTime, utcOffset, longitude)); model.AddAlignmentPoint(new double[] { 13.5954742431641, -0.697973549365997 }, new double[] { 144.097740196623, 180.697973549366 }, new double[] { 144.925319826158, 183.236913318592 }, time); // model.AddAlignmentPoint(new double[]{12.9437046051025, 3.28892135620117}, new double[] { 153.945157337934, 176.711078643799 }, new double[] { 154.854211281482, 179.129744501857 }, new DateTime(2020, 06, 28, 16, 48, 45)); ////NE syncTime = new DateTime(2020, 06, 28, 16, 51, 39); time = new TimeRecord(syncTime, TimeUtils.GetLocalSiderealTime(syncTime, utcOffset, longitude)); model.AddAlignmentPoint(new double[] { 16.405143737793, 61.4716148376465 }, new double[] { 102.750476080924, 118.528385162354 }, new double[] { 100.26112572701, 120.586627285499 }, time); syncTime = new DateTime(2020, 06, 28, 16, 52, 00); time = new TimeRecord(syncTime, TimeUtils.GetLocalSiderealTime(syncTime, utcOffset, longitude)); model.AddAlignmentPoint(new double[] { 15.4235200881958, 58.8995513916016 }, new double[] { 117.558254360687, 121.100448608398 }, new double[] { 114.734222729235, 122.861582942981 }, time); syncTime = new DateTime(2020, 06, 28, 16, 52, 22); time = new TimeRecord(syncTime, TimeUtils.GetLocalSiderealTime(syncTime, utcOffset, longitude)); model.AddAlignmentPoint(new double[] { 15.9716958999634, 54.6963729858398 }, new double[] { 109.430551501457, 125.30362701416 }, new double[] { 107.541470813369, 127.418045303378 }, time); // model.AddAlignmentPoint(new double[]{16.0384006500244, 58.5149154663086}, new double[] { 108.51725186361, 121.485084533691 }, new double[] { 106.174079618103, 123.499884590653 }, new DateTime(2020, 06, 28, 16, 52, 43)); }
public void Cleanup() { model = null; }
public void Initialise() { model = new AlignmentModel(latitude, longitude, elevation); model.ClearAlignmentPoints(); timeRecord = new TimeRecord(this.utcTime, longitude); }