mirror of
https://mirror.ghproxy.com/https://github.com/dexyfex/CodeWalker
synced 2024-11-26 00:43:00 +08:00
Model viewer starting camera position improvement
This commit is contained in:
parent
a85eb257be
commit
bcfeb4fa30
4
Forms/ModelForm.Designer.cs
generated
4
Forms/ModelForm.Designer.cs
generated
@ -287,8 +287,6 @@
|
|||||||
// SkeletonsCheckBox
|
// SkeletonsCheckBox
|
||||||
//
|
//
|
||||||
this.SkeletonsCheckBox.AutoSize = true;
|
this.SkeletonsCheckBox.AutoSize = true;
|
||||||
this.SkeletonsCheckBox.Checked = true;
|
|
||||||
this.SkeletonsCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
|
|
||||||
this.SkeletonsCheckBox.Location = new System.Drawing.Point(19, 444);
|
this.SkeletonsCheckBox.Location = new System.Drawing.Point(19, 444);
|
||||||
this.SkeletonsCheckBox.Name = "SkeletonsCheckBox";
|
this.SkeletonsCheckBox.Name = "SkeletonsCheckBox";
|
||||||
this.SkeletonsCheckBox.Size = new System.Drawing.Size(103, 17);
|
this.SkeletonsCheckBox.Size = new System.Drawing.Size(103, 17);
|
||||||
@ -355,8 +353,6 @@
|
|||||||
// GridCheckBox
|
// GridCheckBox
|
||||||
//
|
//
|
||||||
this.GridCheckBox.AutoSize = true;
|
this.GridCheckBox.AutoSize = true;
|
||||||
this.GridCheckBox.Checked = true;
|
|
||||||
this.GridCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
|
|
||||||
this.GridCheckBox.Location = new System.Drawing.Point(19, 353);
|
this.GridCheckBox.Location = new System.Drawing.Point(19, 353);
|
||||||
this.GridCheckBox.Name = "GridCheckBox";
|
this.GridCheckBox.Name = "GridCheckBox";
|
||||||
this.GridCheckBox.Size = new System.Drawing.Size(45, 17);
|
this.GridCheckBox.Size = new System.Drawing.Size(45, 17);
|
||||||
|
@ -89,7 +89,7 @@ namespace CodeWalker.Forms
|
|||||||
Dictionary<DrawableBase, bool> DrawableDrawFlags = new Dictionary<DrawableBase, bool>();
|
Dictionary<DrawableBase, bool> DrawableDrawFlags = new Dictionary<DrawableBase, bool>();
|
||||||
|
|
||||||
|
|
||||||
bool enableGrid = true;
|
bool enableGrid = false;
|
||||||
float gridSize = 1.0f;
|
float gridSize = 1.0f;
|
||||||
int gridCount = 40;
|
int gridCount = 40;
|
||||||
List<VertexTypePC> gridVerts = new List<VertexTypePC>();
|
List<VertexTypePC> gridVerts = new List<VertexTypePC>();
|
||||||
@ -119,8 +119,13 @@ namespace CodeWalker.Forms
|
|||||||
Renderer.rendercollisionmeshes = false;
|
Renderer.rendercollisionmeshes = false;
|
||||||
Renderer.renderclouds = false;
|
Renderer.renderclouds = false;
|
||||||
Renderer.rendermoon = false;
|
Renderer.rendermoon = false;
|
||||||
Renderer.renderskeletons = true;
|
Renderer.renderskeletons = false;
|
||||||
Renderer.SelectionFlagsTestAll = true;
|
Renderer.SelectionFlagsTestAll = true;
|
||||||
|
|
||||||
|
//var timeofday = 13.6f;
|
||||||
|
//Renderer.SetTimeOfDay(timeofday);
|
||||||
|
//TimeOfDayTrackBar.Value = (int)(timeofday * 60.0f);
|
||||||
|
//UpdateTimeOfDayLabel();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Init()
|
private void Init()
|
||||||
@ -188,6 +193,8 @@ namespace CodeWalker.Forms
|
|||||||
camera.CurrentDistance = 2.0f;
|
camera.CurrentDistance = 2.0f;
|
||||||
camera.TargetRotation.Y = 0.2f;
|
camera.TargetRotation.Y = 0.2f;
|
||||||
camera.CurrentRotation.Y = 0.2f;
|
camera.CurrentRotation.Y = 0.2f;
|
||||||
|
camera.TargetRotation.X = 0.5f * (float)Math.PI;
|
||||||
|
camera.CurrentRotation.X = 0.5f * (float)Math.PI;
|
||||||
|
|
||||||
LoadSettings();
|
LoadSettings();
|
||||||
|
|
||||||
@ -361,6 +368,19 @@ namespace CodeWalker.Forms
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private void MoveCameraToView(Vector3 pos, float rad)
|
||||||
|
{
|
||||||
|
//move the camera to a default place where the given sphere is fully visible.
|
||||||
|
|
||||||
|
rad = Math.Max(0.5f, rad);
|
||||||
|
|
||||||
|
camera.FollowEntity.Position = pos;
|
||||||
|
camera.TargetDistance = rad * 1.6f;
|
||||||
|
camera.CurrentDistance = rad * 1.6f;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private Archetype TryGetArchetype(uint hash)
|
private Archetype TryGetArchetype(uint hash)
|
||||||
{
|
{
|
||||||
@ -544,6 +564,11 @@ namespace CodeWalker.Forms
|
|||||||
FileName = ydr.Name;
|
FileName = ydr.Name;
|
||||||
Ydr = ydr;
|
Ydr = ydr;
|
||||||
|
|
||||||
|
if (ydr.Drawable != null)
|
||||||
|
{
|
||||||
|
MoveCameraToView(ydr.Drawable.BoundingCenter, ydr.Drawable.BoundingSphereRadius);
|
||||||
|
}
|
||||||
|
|
||||||
UpdateModelsUI(ydr.Drawable);
|
UpdateModelsUI(ydr.Drawable);
|
||||||
}
|
}
|
||||||
public void LoadModels(YddFile ydd)
|
public void LoadModels(YddFile ydd)
|
||||||
@ -564,6 +589,12 @@ namespace CodeWalker.Forms
|
|||||||
FileName = yft.Name;
|
FileName = yft.Name;
|
||||||
Yft = yft;
|
Yft = yft;
|
||||||
|
|
||||||
|
var dr = yft.Fragment?.Drawable;
|
||||||
|
if (dr != null)
|
||||||
|
{
|
||||||
|
MoveCameraToView(dr.BoundingCenter, dr.BoundingSphereRadius);
|
||||||
|
}
|
||||||
|
|
||||||
UpdateModelsUI(yft.Fragment.Drawable);
|
UpdateModelsUI(yft.Fragment.Drawable);
|
||||||
}
|
}
|
||||||
public void LoadModel(YbnFile ybn)
|
public void LoadModel(YbnFile ybn)
|
||||||
@ -573,6 +604,11 @@ namespace CodeWalker.Forms
|
|||||||
FileName = ybn.Name;
|
FileName = ybn.Name;
|
||||||
Ybn = ybn;
|
Ybn = ybn;
|
||||||
|
|
||||||
|
if (Ybn.Bounds != null)
|
||||||
|
{
|
||||||
|
MoveCameraToView(Ybn.Bounds.BoundingBoxCenter, Ybn.Bounds.BoundingSphereRadius);
|
||||||
|
}
|
||||||
|
|
||||||
UpdateBoundsUI(ybn);
|
UpdateBoundsUI(ybn);
|
||||||
}
|
}
|
||||||
public void LoadParticles(YptFile ypt)
|
public void LoadParticles(YptFile ypt)
|
||||||
@ -593,6 +629,14 @@ namespace CodeWalker.Forms
|
|||||||
FileName = ynv.Name;
|
FileName = ynv.Name;
|
||||||
Ynv = ynv;
|
Ynv = ynv;
|
||||||
|
|
||||||
|
if (ynv.Nav.SectorTree != null)
|
||||||
|
{
|
||||||
|
var st = ynv.Nav.SectorTree;
|
||||||
|
var cen = (st.AABBMin + st.AABBMax).XYZ() * 0.5f;
|
||||||
|
var rad = (st.AABBMax - st.AABBMin).XYZ().Length() * 0.5f;
|
||||||
|
MoveCameraToView(cen, rad);
|
||||||
|
}
|
||||||
|
|
||||||
UpdateNavmeshUI(ynv);
|
UpdateNavmeshUI(ynv);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -664,7 +708,7 @@ namespace CodeWalker.Forms
|
|||||||
|
|
||||||
var s = Settings.Default;
|
var s = Settings.Default;
|
||||||
|
|
||||||
float moveSpeed = 10.0f;
|
float moveSpeed = 2.0f;
|
||||||
|
|
||||||
|
|
||||||
Input.Update(elapsed);
|
Input.Update(elapsed);
|
||||||
|
Loading…
Reference in New Issue
Block a user