mirror of
https://git.do.srb2.org/STJr/UltimateZoneBuilder.git
synced 2024-12-17 23:51:10 +00:00
deb43343bb
Visual mode: removed "Fit Texture's Width" and "Fit Texture's Height" actions. Visual mode: "Auto-align texture offsets" actions were incorrectly aligning double-sided middle walls in some cases. Visual mode: "Auto-align texture offsets" actions now align non-wrapped double-sided middle walls to vertical offset closest to their initial vertical offset. Visual mode: middle parts of double-sided walls were ignored when Shift-selecting walls. Nodebuilders/Game configurations: GL nodes definitions were missing from game configurations. Nodebuilders/Game configurations: "~MAP" wildcard can now be a part of a lump name. Nodebuilders: GL nodes were not properly handled by the editor. Main Window: the window is now moved into the view when stored position is ouside of screen bounds. Classic and Visual modes: changing thing pitch was ignored in some cases. Visual mode: raising and lowering a thing with "+SPAWNCEILING" flag now works the same way as when raising/lowering a regular thing. Visual mode: using "Raise/Lower Floor/Ceiling to adjacent sector" actions on a thing with "+SPAWNCEILING" flag now works the same way as when using them on a regular thing. Rendering: even more fixes to MODELDEF and UDMF properties-related model rendering logic. Internal, ResourceListEditor: rewritten resource validation check in a more OOP-ish way. Configurations: fixed an infinite loop crash when a file was trying to include() itself. UDMF thing flags: added Skill 6-8 to the flags list (because there are thing filters for these). ZDoom_ACS.cfg: added definitions for SetTeleFog and SwapTeleFog. ZDoom_DECORATE.cfg: added definitions for A_SetTeleFog and A_SwapTeleFog. Updated ZDoom ACC. Updated documentation.
72 lines
1.9 KiB
C#
72 lines
1.9 KiB
C#
#region ================== Namespaces
|
|
|
|
using System.Collections.Generic;
|
|
using CodeImp.DoomBuilder.GZBuilder.MD3;
|
|
using CodeImp.DoomBuilder.Rendering;
|
|
using SlimDX;
|
|
using SlimDX.Direct3D9;
|
|
|
|
#endregion
|
|
|
|
namespace CodeImp.DoomBuilder.GZBuilder.Data
|
|
{
|
|
internal sealed class ModelData
|
|
{
|
|
#region ================== Variables
|
|
|
|
private ModelLoadState loadstate;
|
|
private Vector3 scale;
|
|
private Matrix transform;
|
|
private Matrix transformstretched;
|
|
|
|
#endregion
|
|
|
|
#region ================== Properties
|
|
|
|
internal List<string> ModelNames;
|
|
internal List<string> TextureNames;
|
|
|
|
internal GZModel Model;
|
|
|
|
internal Vector3 Scale { get { return scale; } }
|
|
internal Matrix Transform { get { return (General.Settings.GZStretchView ? transformstretched : transform); } }
|
|
internal bool OverridePalette; //used for voxel models only
|
|
internal bool InheritActorPitch;
|
|
internal bool InheritActorRoll;
|
|
|
|
internal bool IsVoxel;
|
|
|
|
public ModelLoadState LoadState { get { return loadstate; } internal set { loadstate = value; } }
|
|
|
|
#endregion
|
|
|
|
#region ================== Constructor / Disposer
|
|
|
|
internal ModelData()
|
|
{
|
|
ModelNames = new List<string>();
|
|
TextureNames = new List<string>();
|
|
transform = Matrix.Identity;
|
|
transformstretched = Matrix.Identity;
|
|
}
|
|
|
|
internal void Dispose()
|
|
{
|
|
if (Model != null)
|
|
{
|
|
foreach (Mesh mesh in Model.Meshes) mesh.Dispose();
|
|
foreach (Texture t in Model.Textures) t.Dispose();
|
|
loadstate = ModelLoadState.None;
|
|
}
|
|
}
|
|
|
|
internal void SetTransform(Matrix rotation, Matrix offset, Vector3 scale)
|
|
{
|
|
this.scale = scale;
|
|
this.transform = Matrix.Scaling(scale) * rotation * offset;
|
|
this.transformstretched = Matrix.Scaling(scale.X, scale.Y, scale.Z * Renderer3D.GZDOOM_INVERTED_VERTICAL_VIEW_STRETCH) * rotation * offset;
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|