Render car generators option for MrFoxPro

This commit is contained in:
dexy 2018-12-23 15:29:35 +11:00
parent 801d530d78
commit a7c17f318c
4 changed files with 148 additions and 86 deletions

View File

@ -102,6 +102,7 @@ namespace CodeWalker.Rendering
public bool renderentities = true;
public bool rendergrass = true;
public bool renderdistlodlights = true;
public bool rendercars = false;
public bool rendercollisionmeshes = Settings.Default.ShowCollisionMeshes;
public bool rendercollisionmeshlayerdrawable = true;
@ -1620,7 +1621,17 @@ namespace CodeWalker.Rendering
}
if (rendercars)
{
for (int y = 0; y < VisibleYmaps.Count; y++)
{
var ymap = VisibleYmaps[y];
if (ymap.CarGenerators != null)
{
RenderYmapCarGenerators(ymap);
}
}
}
if (rendergrass)
{
for (int y = 0; y < VisibleYmaps.Count; y++)
@ -1956,6 +1967,10 @@ namespace CodeWalker.Rendering
}
}
if (rendercars && ymap.CarGenerators != null)
{
RenderYmapCarGenerators(ymap);
}
if (rendergrass && (ymap.GrassInstanceBatches != null))
{
RenderYmapGrass(ymap);
@ -2147,6 +2162,34 @@ namespace CodeWalker.Rendering
shaders.Enqueue(lights);
}
private void RenderYmapCarGenerators(YmapFile ymap)
{
if (ymap.CarGenerators == null) return;
var maxdist = 200 * renderworldDetailDistMult;
var maxdist2 = maxdist * maxdist;
for (int i = 0; i < ymap.CarGenerators.Length; i++)
{
var cg = ymap.CarGenerators[i];
var bscent = cg.Position - camera.Position;
float bsrad = cg._CCarGen.perpendicularLength;
if (bscent.LengthSquared() > maxdist2) continue; //don't render distant cars..
if (!camera.ViewFrustum.ContainsSphereNoClipNoOpt(ref bscent, bsrad))
{
continue; //frustum cull cars...
}
Quaternion cgtrn = Quaternion.RotationAxis(Vector3.UnitZ, (float)Math.PI * -0.5f); //car fragments currently need to be rotated 90 deg right...
Quaternion cgori = Quaternion.Multiply(cg.Orientation, cgtrn);
RenderCar(cg.Position, cgori, cg._CCarGen.carModel, cg._CCarGen.popGroup);
}
}

90
WorldForm.Designer.cs generated
View File

@ -254,6 +254,7 @@ namespace CodeWalker
this.ToolbarSelectMloInstanceButton = new System.Windows.Forms.ToolStripMenuItem();
this.ToolbarSelectScenarioButton = new System.Windows.Forms.ToolStripMenuItem();
this.ToolbarSelectAudioButton = new System.Windows.Forms.ToolStripMenuItem();
this.ToolbarSelectOcclusionButton = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.ToolbarMoveButton = new System.Windows.Forms.ToolStripButton();
this.ToolbarRotateButton = new System.Windows.Forms.ToolStripButton();
@ -285,7 +286,7 @@ namespace CodeWalker
this.ToolbarCameraMapViewButton = new System.Windows.Forms.ToolStripMenuItem();
this.ToolbarCameraOrthographicButton = new System.Windows.Forms.ToolStripMenuItem();
this.ToolbarPanel = new System.Windows.Forms.Panel();
this.ToolbarSelectOcclusionButton = new System.Windows.Forms.ToolStripMenuItem();
this.CarGeneratorsCheckBox = new System.Windows.Forms.CheckBox();
this.StatusStrip.SuspendLayout();
this.ToolsPanel.SuspendLayout();
this.ToolsTabControl.SuspendLayout();
@ -1300,6 +1301,7 @@ namespace CodeWalker
//
// tabPage8
//
this.tabPage8.Controls.Add(this.CarGeneratorsCheckBox);
this.tabPage8.Controls.Add(this.RenderEntitiesCheckBox);
this.tabPage8.Controls.Add(this.AdvancedSettingsButton);
this.tabPage8.Controls.Add(this.ControlSettingsButton);
@ -1338,10 +1340,10 @@ namespace CodeWalker
this.RenderEntitiesCheckBox.AutoSize = true;
this.RenderEntitiesCheckBox.Checked = true;
this.RenderEntitiesCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
this.RenderEntitiesCheckBox.Location = new System.Drawing.Point(10, 32);
this.RenderEntitiesCheckBox.Location = new System.Drawing.Point(10, 30);
this.RenderEntitiesCheckBox.Name = "RenderEntitiesCheckBox";
this.RenderEntitiesCheckBox.Size = new System.Drawing.Size(89, 17);
this.RenderEntitiesCheckBox.TabIndex = 67;
this.RenderEntitiesCheckBox.TabIndex = 29;
this.RenderEntitiesCheckBox.Text = "Show entities";
this.RenderEntitiesCheckBox.UseVisualStyleBackColor = true;
this.RenderEntitiesCheckBox.CheckedChanged += new System.EventHandler(this.RenderEntitiesCheckBox_CheckedChanged);
@ -1351,7 +1353,7 @@ namespace CodeWalker
this.AdvancedSettingsButton.Location = new System.Drawing.Point(101, 456);
this.AdvancedSettingsButton.Name = "AdvancedSettingsButton";
this.AdvancedSettingsButton.Size = new System.Drawing.Size(93, 23);
this.AdvancedSettingsButton.TabIndex = 61;
this.AdvancedSettingsButton.TabIndex = 46;
this.AdvancedSettingsButton.Text = "Advanced...";
this.AdvancedSettingsButton.UseVisualStyleBackColor = true;
this.AdvancedSettingsButton.Click += new System.EventHandler(this.AdvancedSettingsButton_Click);
@ -1361,7 +1363,7 @@ namespace CodeWalker
this.ControlSettingsButton.Location = new System.Drawing.Point(2, 456);
this.ControlSettingsButton.Name = "ControlSettingsButton";
this.ControlSettingsButton.Size = new System.Drawing.Size(93, 23);
this.ControlSettingsButton.TabIndex = 60;
this.ControlSettingsButton.TabIndex = 45;
this.ControlSettingsButton.Text = "Controls...";
this.ControlSettingsButton.UseVisualStyleBackColor = true;
this.ControlSettingsButton.Click += new System.EventHandler(this.ControlSettingsButton_Click);
@ -1396,7 +1398,7 @@ namespace CodeWalker
this.MapViewDetailTrackBar.Minimum = 2;
this.MapViewDetailTrackBar.Name = "MapViewDetailTrackBar";
this.MapViewDetailTrackBar.Size = new System.Drawing.Size(188, 45);
this.MapViewDetailTrackBar.TabIndex = 58;
this.MapViewDetailTrackBar.TabIndex = 44;
this.MapViewDetailTrackBar.TickFrequency = 2;
this.MapViewDetailTrackBar.Value = 10;
this.MapViewDetailTrackBar.Scroll += new System.EventHandler(this.MapViewDetailTrackBar_Scroll);
@ -1412,7 +1414,7 @@ namespace CodeWalker
this.CameraModeComboBox.Location = new System.Drawing.Point(82, 305);
this.CameraModeComboBox.Name = "CameraModeComboBox";
this.CameraModeComboBox.Size = new System.Drawing.Size(112, 21);
this.CameraModeComboBox.TabIndex = 56;
this.CameraModeComboBox.TabIndex = 42;
this.CameraModeComboBox.SelectedIndexChanged += new System.EventHandler(this.CameraModeComboBox_SelectedIndexChanged);
this.CameraModeComboBox.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.CameraModeComboBox_KeyPress);
//
@ -1430,10 +1432,10 @@ namespace CodeWalker
this.WaterQuadsCheckBox.AutoSize = true;
this.WaterQuadsCheckBox.Checked = true;
this.WaterQuadsCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
this.WaterQuadsCheckBox.Location = new System.Drawing.Point(10, 129);
this.WaterQuadsCheckBox.Location = new System.Drawing.Point(10, 135);
this.WaterQuadsCheckBox.Name = "WaterQuadsCheckBox";
this.WaterQuadsCheckBox.Size = new System.Drawing.Size(114, 17);
this.WaterQuadsCheckBox.TabIndex = 39;
this.WaterQuadsCheckBox.TabIndex = 35;
this.WaterQuadsCheckBox.Text = "Show water quads";
this.WaterQuadsCheckBox.UseVisualStyleBackColor = true;
this.WaterQuadsCheckBox.CheckedChanged += new System.EventHandler(this.WaterQuadsCheckBox_CheckedChanged);
@ -1459,10 +1461,10 @@ namespace CodeWalker
// TimedEntitiesAlwaysOnCheckBox
//
this.TimedEntitiesAlwaysOnCheckBox.AutoSize = true;
this.TimedEntitiesAlwaysOnCheckBox.Location = new System.Drawing.Point(131, 83);
this.TimedEntitiesAlwaysOnCheckBox.Location = new System.Drawing.Point(131, 93);
this.TimedEntitiesAlwaysOnCheckBox.Name = "TimedEntitiesAlwaysOnCheckBox";
this.TimedEntitiesAlwaysOnCheckBox.Size = new System.Drawing.Size(58, 17);
this.TimedEntitiesAlwaysOnCheckBox.TabIndex = 37;
this.TimedEntitiesAlwaysOnCheckBox.TabIndex = 33;
this.TimedEntitiesAlwaysOnCheckBox.Text = "always";
this.TimedEntitiesAlwaysOnCheckBox.UseVisualStyleBackColor = true;
this.TimedEntitiesAlwaysOnCheckBox.CheckedChanged += new System.EventHandler(this.TimedEntitiesAlwaysOnCheckBox_CheckedChanged);
@ -1472,10 +1474,10 @@ namespace CodeWalker
this.GrassCheckBox.AutoSize = true;
this.GrassCheckBox.Checked = true;
this.GrassCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
this.GrassCheckBox.Location = new System.Drawing.Point(10, 57);
this.GrassCheckBox.Location = new System.Drawing.Point(10, 51);
this.GrassCheckBox.Name = "GrassCheckBox";
this.GrassCheckBox.Size = new System.Drawing.Size(81, 17);
this.GrassCheckBox.TabIndex = 35;
this.GrassCheckBox.TabIndex = 30;
this.GrassCheckBox.Text = "Show grass";
this.GrassCheckBox.UseVisualStyleBackColor = true;
this.GrassCheckBox.CheckedChanged += new System.EventHandler(this.GrassCheckBox_CheckedChanged);
@ -1485,10 +1487,10 @@ namespace CodeWalker
this.InteriorsCheckBox.AutoSize = true;
this.InteriorsCheckBox.Checked = true;
this.InteriorsCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
this.InteriorsCheckBox.Location = new System.Drawing.Point(10, 106);
this.InteriorsCheckBox.Location = new System.Drawing.Point(10, 114);
this.InteriorsCheckBox.Name = "InteriorsCheckBox";
this.InteriorsCheckBox.Size = new System.Drawing.Size(92, 17);
this.InteriorsCheckBox.TabIndex = 38;
this.InteriorsCheckBox.TabIndex = 34;
this.InteriorsCheckBox.Text = "Show interiors";
this.InteriorsCheckBox.UseVisualStyleBackColor = true;
this.InteriorsCheckBox.CheckedChanged += new System.EventHandler(this.InteriorsCheckBox_CheckedChanged);
@ -1498,10 +1500,10 @@ namespace CodeWalker
this.CollisionMeshLayerDrawableCheckBox.AutoSize = true;
this.CollisionMeshLayerDrawableCheckBox.Checked = true;
this.CollisionMeshLayerDrawableCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
this.CollisionMeshLayerDrawableCheckBox.Location = new System.Drawing.Point(118, 247);
this.CollisionMeshLayerDrawableCheckBox.Location = new System.Drawing.Point(118, 262);
this.CollisionMeshLayerDrawableCheckBox.Name = "CollisionMeshLayerDrawableCheckBox";
this.CollisionMeshLayerDrawableCheckBox.Size = new System.Drawing.Size(71, 17);
this.CollisionMeshLayerDrawableCheckBox.TabIndex = 52;
this.CollisionMeshLayerDrawableCheckBox.TabIndex = 41;
this.CollisionMeshLayerDrawableCheckBox.Text = "Drawable";
this.CollisionMeshLayerDrawableCheckBox.UseVisualStyleBackColor = true;
this.CollisionMeshLayerDrawableCheckBox.CheckedChanged += new System.EventHandler(this.CollisionMeshLayerDrawableCheckBox_CheckedChanged);
@ -1511,10 +1513,10 @@ namespace CodeWalker
this.CollisionMeshLayer2CheckBox.AutoSize = true;
this.CollisionMeshLayer2CheckBox.Checked = true;
this.CollisionMeshLayer2CheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
this.CollisionMeshLayer2CheckBox.Location = new System.Drawing.Point(82, 247);
this.CollisionMeshLayer2CheckBox.Location = new System.Drawing.Point(82, 262);
this.CollisionMeshLayer2CheckBox.Name = "CollisionMeshLayer2CheckBox";
this.CollisionMeshLayer2CheckBox.Size = new System.Drawing.Size(32, 17);
this.CollisionMeshLayer2CheckBox.TabIndex = 51;
this.CollisionMeshLayer2CheckBox.TabIndex = 40;
this.CollisionMeshLayer2CheckBox.Text = "2";
this.CollisionMeshLayer2CheckBox.UseVisualStyleBackColor = true;
this.CollisionMeshLayer2CheckBox.CheckedChanged += new System.EventHandler(this.CollisionMeshLayer2CheckBox_CheckedChanged);
@ -1524,10 +1526,10 @@ namespace CodeWalker
this.CollisionMeshLayer1CheckBox.AutoSize = true;
this.CollisionMeshLayer1CheckBox.Checked = true;
this.CollisionMeshLayer1CheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
this.CollisionMeshLayer1CheckBox.Location = new System.Drawing.Point(46, 247);
this.CollisionMeshLayer1CheckBox.Location = new System.Drawing.Point(46, 262);
this.CollisionMeshLayer1CheckBox.Name = "CollisionMeshLayer1CheckBox";
this.CollisionMeshLayer1CheckBox.Size = new System.Drawing.Size(32, 17);
this.CollisionMeshLayer1CheckBox.TabIndex = 50;
this.CollisionMeshLayer1CheckBox.TabIndex = 39;
this.CollisionMeshLayer1CheckBox.Text = "1";
this.CollisionMeshLayer1CheckBox.UseVisualStyleBackColor = true;
this.CollisionMeshLayer1CheckBox.CheckedChanged += new System.EventHandler(this.CollisionMeshLayer1CheckBox_CheckedChanged);
@ -1535,7 +1537,7 @@ namespace CodeWalker
// label13
//
this.label13.AutoSize = true;
this.label13.Location = new System.Drawing.Point(4, 229);
this.label13.Location = new System.Drawing.Point(4, 244);
this.label13.Name = "label13";
this.label13.Size = new System.Drawing.Size(106, 13);
this.label13.TabIndex = 54;
@ -1546,10 +1548,10 @@ namespace CodeWalker
this.CollisionMeshLayer0CheckBox.AutoSize = true;
this.CollisionMeshLayer0CheckBox.Checked = true;
this.CollisionMeshLayer0CheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
this.CollisionMeshLayer0CheckBox.Location = new System.Drawing.Point(10, 247);
this.CollisionMeshLayer0CheckBox.Location = new System.Drawing.Point(10, 262);
this.CollisionMeshLayer0CheckBox.Name = "CollisionMeshLayer0CheckBox";
this.CollisionMeshLayer0CheckBox.Size = new System.Drawing.Size(32, 17);
this.CollisionMeshLayer0CheckBox.TabIndex = 49;
this.CollisionMeshLayer0CheckBox.TabIndex = 38;
this.CollisionMeshLayer0CheckBox.Text = "0";
this.CollisionMeshLayer0CheckBox.UseVisualStyleBackColor = true;
this.CollisionMeshLayer0CheckBox.CheckedChanged += new System.EventHandler(this.CollisionMeshLayer0CheckBox_CheckedChanged);
@ -1557,7 +1559,7 @@ namespace CodeWalker
// label12
//
this.label12.AutoSize = true;
this.label12.Location = new System.Drawing.Point(4, 178);
this.label12.Location = new System.Drawing.Point(4, 193);
this.label12.Name = "label12";
this.label12.Size = new System.Drawing.Size(129, 13);
this.label12.TabIndex = 51;
@ -1569,22 +1571,22 @@ namespace CodeWalker
| System.Windows.Forms.AnchorStyles.Right)));
this.CollisionMeshRangeTrackBar.BackColor = System.Drawing.SystemColors.ControlLightLight;
this.CollisionMeshRangeTrackBar.LargeChange = 1;
this.CollisionMeshRangeTrackBar.Location = new System.Drawing.Point(6, 194);
this.CollisionMeshRangeTrackBar.Location = new System.Drawing.Point(6, 209);
this.CollisionMeshRangeTrackBar.Maximum = 15;
this.CollisionMeshRangeTrackBar.Minimum = 1;
this.CollisionMeshRangeTrackBar.Name = "CollisionMeshRangeTrackBar";
this.CollisionMeshRangeTrackBar.Size = new System.Drawing.Size(188, 45);
this.CollisionMeshRangeTrackBar.TabIndex = 48;
this.CollisionMeshRangeTrackBar.TabIndex = 37;
this.CollisionMeshRangeTrackBar.Value = 6;
this.CollisionMeshRangeTrackBar.Scroll += new System.EventHandler(this.CollisionMeshRangeTrackBar_Scroll);
//
// CollisionMeshesCheckBox
//
this.CollisionMeshesCheckBox.AutoSize = true;
this.CollisionMeshesCheckBox.Location = new System.Drawing.Point(10, 156);
this.CollisionMeshesCheckBox.Location = new System.Drawing.Point(10, 171);
this.CollisionMeshesCheckBox.Name = "CollisionMeshesCheckBox";
this.CollisionMeshesCheckBox.Size = new System.Drawing.Size(132, 17);
this.CollisionMeshesCheckBox.TabIndex = 47;
this.CollisionMeshesCheckBox.TabIndex = 36;
this.CollisionMeshesCheckBox.Text = "Show collision meshes";
this.CollisionMeshesCheckBox.UseVisualStyleBackColor = true;
this.CollisionMeshesCheckBox.CheckedChanged += new System.EventHandler(this.CollisionMeshesCheckBox_CheckedChanged);
@ -1605,10 +1607,10 @@ namespace CodeWalker
this.TimedEntitiesCheckBox.AutoSize = true;
this.TimedEntitiesCheckBox.Checked = true;
this.TimedEntitiesCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
this.TimedEntitiesCheckBox.Location = new System.Drawing.Point(10, 83);
this.TimedEntitiesCheckBox.Location = new System.Drawing.Point(10, 93);
this.TimedEntitiesCheckBox.Name = "TimedEntitiesCheckBox";
this.TimedEntitiesCheckBox.Size = new System.Drawing.Size(117, 17);
this.TimedEntitiesCheckBox.TabIndex = 36;
this.TimedEntitiesCheckBox.TabIndex = 32;
this.TimedEntitiesCheckBox.Text = "Show timed entities";
this.TimedEntitiesCheckBox.UseVisualStyleBackColor = true;
this.TimedEntitiesCheckBox.CheckedChanged += new System.EventHandler(this.TimedEntitiesCheckBox_CheckedChanged);
@ -1624,7 +1626,7 @@ namespace CodeWalker
this.FieldOfViewTrackBar.Minimum = 10;
this.FieldOfViewTrackBar.Name = "FieldOfViewTrackBar";
this.FieldOfViewTrackBar.Size = new System.Drawing.Size(188, 45);
this.FieldOfViewTrackBar.TabIndex = 57;
this.FieldOfViewTrackBar.TabIndex = 43;
this.FieldOfViewTrackBar.TickFrequency = 10;
this.FieldOfViewTrackBar.Value = 100;
this.FieldOfViewTrackBar.Scroll += new System.EventHandler(this.FieldOfViewTrackBar_Scroll);
@ -2696,7 +2698,7 @@ namespace CodeWalker
this.ToolbarCameraModeButton});
this.Toolbar.Location = new System.Drawing.Point(1, 0);
this.Toolbar.Name = "Toolbar";
this.Toolbar.Size = new System.Drawing.Size(585, 25);
this.Toolbar.Size = new System.Drawing.Size(554, 25);
this.Toolbar.TabIndex = 6;
this.Toolbar.Text = "toolStrip1";
//
@ -2970,6 +2972,13 @@ namespace CodeWalker
this.ToolbarSelectAudioButton.Text = "Audio";
this.ToolbarSelectAudioButton.Click += new System.EventHandler(this.ToolbarSelectAudioButton_Click);
//
// ToolbarSelectOcclusionButton
//
this.ToolbarSelectOcclusionButton.Name = "ToolbarSelectOcclusionButton";
this.ToolbarSelectOcclusionButton.Size = new System.Drawing.Size(181, 22);
this.ToolbarSelectOcclusionButton.Text = "Occlusion";
this.ToolbarSelectOcclusionButton.Click += new System.EventHandler(this.ToolbarSelectOcclusionButton_Click);
//
// toolStripSeparator1
//
this.toolStripSeparator1.Name = "toolStripSeparator1";
@ -3261,12 +3270,16 @@ namespace CodeWalker
this.ToolbarPanel.TabIndex = 7;
this.ToolbarPanel.Visible = false;
//
// ToolbarSelectOcclusionButton
// CarGeneratorsCheckBox
//
this.ToolbarSelectOcclusionButton.Name = "ToolbarSelectOcclusionButton";
this.ToolbarSelectOcclusionButton.Size = new System.Drawing.Size(181, 22);
this.ToolbarSelectOcclusionButton.Text = "Occlusion";
this.ToolbarSelectOcclusionButton.Click += new System.EventHandler(this.ToolbarSelectOcclusionButton_Click);
this.CarGeneratorsCheckBox.AutoSize = true;
this.CarGeneratorsCheckBox.Location = new System.Drawing.Point(10, 72);
this.CarGeneratorsCheckBox.Name = "CarGeneratorsCheckBox";
this.CarGeneratorsCheckBox.Size = new System.Drawing.Size(124, 17);
this.CarGeneratorsCheckBox.TabIndex = 31;
this.CarGeneratorsCheckBox.Text = "Show car generators";
this.CarGeneratorsCheckBox.UseVisualStyleBackColor = true;
this.CarGeneratorsCheckBox.CheckedChanged += new System.EventHandler(this.CarGeneratorsCheckBox_CheckedChanged);
//
// WorldForm
//
@ -3610,5 +3623,6 @@ namespace CodeWalker
private System.Windows.Forms.Label label26;
private System.Windows.Forms.CheckBox RenderEntitiesCheckBox;
private System.Windows.Forms.ToolStripMenuItem ToolbarSelectOcclusionButton;
private System.Windows.Forms.CheckBox CarGeneratorsCheckBox;
}
}

View File

@ -6592,6 +6592,11 @@ namespace CodeWalker
Renderer.rendergrass = GrassCheckBox.Checked;
}
private void CarGeneratorsCheckBox_CheckedChanged(object sender, EventArgs e)
{
Renderer.rendercars = CarGeneratorsCheckBox.Checked;
}
private void TimedEntitiesCheckBox_CheckedChanged(object sender, EventArgs e)
{
Renderer.rendertimedents = TimedEntitiesCheckBox.Checked;

View File

@ -248,6 +248,25 @@ ufo
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAB0SURBVDhP7ZNBCoAgEEXnSJ3BqxmetNpaMLhVv5DNRJS2
CxIeuvA9XSjtg5mHEILPxB6U7JyLxphmSkDK1o5x9dst87SUfTXwRsYsA+paT0BGDGsVOJ92hdz3Bz4f
wGPC48uu7w5IGd+gBlpRMgYCnRwyESUj3CsQkYNFDwAAAABJRU5ErkJggg==
</value>
</data>
<data name="ToolbarObjectSpaceButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAAHRJREFUOE/tk0EKgCAQRedIncGrGZ602lowuFW/kM1ElLYLEh668D1dKO2DmYcQ
gs/EHpTsnIvGmGZKQMrWjnH12y3ztJR9NfBGxiwD6lpPQEYMaxU4n3aF3PcHPh/AY8Ljy67vDkgZ36AG
WlEyBgKdHDIRJSPcKxCRg0UPAAAAAElFTkSuQmCC
</value>
</data>
<data name="ToolbarWorldSpaceButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAThJREFUOE+dk01ugzAQhTlBj+MDIJC4A1yEa7DMnlWaSiAu0ZI7BNi0XaRpF7Bg
4/pzbMsQ0qod6SX2zHvPP4yDdUzTJBR2CieF2YAxOWFot6GKDwrlMAyyKAqZZZkMw1AjTVOdowYHrpFd
w4if67p2os/L1wI2DwfuwkRNSitu2+NdA1szJqUVC7ZGYb9/dOQtA/6bptFjcxyBwY7zkfwL0KDF4ESC
7bHCx/miCf7qYJ1jjjYYx3Fm0nfDXfJWzhjMzuBweJJvr++b5K1dOQN7hP9AH0H96EvM83zh7q+2zsH1
L1H0fS+TJHEX+ZsBXDRobS/oRorjWB5/aqSXVkZRJKuqQnxtJEJNXCvjTu9D9kGOmhEvW5kwJiVb43wI
WBXYx9R1nV75RuyHKrrnzCcGjE1u9ZyD4BugoZigQ9xrngAAAABJRU5ErkJggg==
</value>
</data>
<data name="ToolbarSnapButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@ -257,6 +276,34 @@ ufo
ZI2JiU7VVIVlp7OL+1mllIr7cb8Ie++PQwQYITnnM24NWxoBgsQYm/l+gk699bMsRA4h1JTSPsg0Xert
em/mGwh3vW1Z7MvIABSWqXG3+iZHAEw1m4wD49oVANgVOL/VeSgeDAiX1mpWeKy9BIQiI+OxWQF77tG5
2Fc729BmeElf/3lNhORe+oecewDObEqX49RqCgAAAABJRU5ErkJggg==
</value>
</data>
<data name="ToolbarSnapToGroundButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAADMSURBVDhPrZLBDcMgDEUzGxN0ilyZJ92DqXJoe4Cr
y3f8EXERUptaehVx/F8gzSIil1hKKWIMB8C0EA4hTCXToqCXVFbjOwElKSUF65zzzUbHhad4CYkxyr7v
KvHHIhQ0ybbd5fl4KVhDgns+SPSnDqzYMgQME/TsOO2d/EVQ17ozXmgD2/VHgMCGdY5h9psALwovDBLc
9GAYcwyzZ//FUZCgiS3btj8k/tqiR3Xn0w+pDp2e2IN+xZJWncAzDINTTQSAwRYGLfQbsrwBmeh5Q8G/
p8gAAAAASUVORK5CYII=
</value>
</data>
<data name="ToolbarSnapToGridButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAAH5JREFUOE+9kEEKwCAMBH2bL+hPfI/9ooe2B71aVpKS5iBB0i4MyCZZjcFdrbUu
IdsuDMUYB/8H1Fo3HQCPynOhsZTSU0pPAM7wpiG4hcFAzns/j2uAMzzZo3ntDHiYkTWNXwCztAJr+ROl
0IhU+UTzMEsHkG2XS4CE7K8Uwg0o2F4o9CrlEwAAAABJRU5ErkJggg==
</value>
</data>
<data name="ToolbarSnapToGroundGridButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAADLSURBVDhPpZHRDcIwDEQzWxbqGEjZoOzRqfoBfLS/
Jnf1IWMKAmrpSYl7d3HSYmaHKOu6msNG2BOKPhVEtdZHiPbqfR0QQqy1Rn4OUMg0TQTrZVlOLt2vLnoJ
EcMw2DzPDMEke9AsYBrHs10vN4I1QqImwwDcFyMjQGaBHr5Bo8nEoYCnCQTGzVeI4oj6fIi+KHgoPBhC
4knCjTww9vxfbIUQNDEyiGIZ8t6tW/k0vC/AOpuiueNOLwVkUeylvju9FJCg8E1vM/2PlTv5UoervVTJ
uQAAAABJRU5ErkJggg==
</value>
</data>
<data name="ToolbarUndoButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@ -353,53 +400,6 @@ ufo
UIVMtMHfWUUj4nIg/KurGIYrSAZYOXDGlbhXcZlegUO8Yxzb+BlQAwNW0G0jVAYK0AwHtnCEOyQDZvGC
ObTbKIIvLMA9WIYDizhFMsDjfsAZptCA9JcdfoVBvryOSbgCe4HPTuCz+BQMKEUvJmCy96ET1ehCuAf2
5ZF+uwdZKEYtmuBGFSIXhtejBe5PHX7dxL+qKPoEppRHcXOtiDsAAAAASUVORK5CYII=
</value>
</data>
<data name="ToolbarObjectSpaceButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAAHRJREFUOE/tk0EKgCAQRedIncGrGZ602lowuFW/kM1ElLYLEh668D1dKO2DmYcQ
gs/EHpTsnIvGmGZKQMrWjnH12y3ztJR9NfBGxiwD6lpPQEYMaxU4n3aF3PcHPh/AY8Ljy67vDkgZ36AG
WlEyBgKdHDIRJSPcKxCRg0UPAAAAAElFTkSuQmCC
</value>
</data>
<data name="ToolbarWorldSpaceButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAThJREFUOE+dk01ugzAQhTlBj+MDIJC4A1yEa7DMnlWaSiAu0ZI7BNi0XaRpF7Bg
4/pzbMsQ0qod6SX2zHvPP4yDdUzTJBR2CieF2YAxOWFot6GKDwrlMAyyKAqZZZkMw1AjTVOdowYHrpFd
w4if67p2os/L1wI2DwfuwkRNSitu2+NdA1szJqUVC7ZGYb9/dOQtA/6bptFjcxyBwY7zkfwL0KDF4ESC
7bHCx/miCf7qYJ1jjjYYx3Fm0nfDXfJWzhjMzuBweJJvr++b5K1dOQN7hP9AH0H96EvM83zh7q+2zsH1
L1H0fS+TJHEX+ZsBXDRobS/oRorjWB5/aqSXVkZRJKuqQnxtJEJNXCvjTu9D9kGOmhEvW5kwJiVb43wI
WBXYx9R1nV75RuyHKrrnzCcGjE1u9ZyD4BugoZigQ9xrngAAAABJRU5ErkJggg==
</value>
</data>
<data name="ToolbarSnapToGroundButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAADMSURBVDhPrZLBDcMgDEUzGxN0ilyZJ92DqXJoe4Cr
y3f8EXERUptaehVx/F8gzSIil1hKKWIMB8C0EA4hTCXToqCXVFbjOwElKSUF65zzzUbHhad4CYkxyr7v
KvHHIhQ0ybbd5fl4KVhDgns+SPSnDqzYMgQME/TsOO2d/EVQ17ozXmgD2/VHgMCGdY5h9psALwovDBLc
9GAYcwyzZ//FUZCgiS3btj8k/tqiR3Xn0w+pDp2e2IN+xZJWncAzDINTTQSAwRYGLfQbsrwBmeh5Q8G/
p8gAAAAASUVORK5CYII=
</value>
</data>
<data name="ToolbarSnapToGridButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAAH5JREFUOE+9kEEKwCAMBH2bL+hPfI/9ooe2B71aVpKS5iBB0i4MyCZZjcFdrbUu
IdsuDMUYB/8H1Fo3HQCPynOhsZTSU0pPAM7wpiG4hcFAzns/j2uAMzzZo3ntDHiYkTWNXwCztAJr+ROl
0IhU+UTzMEsHkG2XS4CE7K8Uwg0o2F4o9CrlEwAAAABJRU5ErkJggg==
</value>
</data>
<data name="ToolbarSnapToGroundGridButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAADLSURBVDhPpZHRDcIwDEQzWxbqGEjZoOzRqfoBfLS/
Jnf1IWMKAmrpSYl7d3HSYmaHKOu6msNG2BOKPhVEtdZHiPbqfR0QQqy1Rn4OUMg0TQTrZVlOLt2vLnoJ
EcMw2DzPDMEke9AsYBrHs10vN4I1QqImwwDcFyMjQGaBHr5Bo8nEoYCnCQTGzVeI4oj6fIi+KHgoPBhC
4knCjTww9vxfbIUQNDEyiGIZ8t6tW/k0vC/AOpuiueNOLwVkUeylvju9FJCg8E1vM/2PlTv5UoervVTJ
uQAAAABJRU5ErkJggg==
</value>
</data>
<data name="ToolbarCameraPerspectiveButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">