From ed0d5092f7f4355cc94df49679ca73a7d7fae0af Mon Sep 17 00:00:00 2001 From: John Hurliman Date: Wed, 23 Jul 2008 23:18:27 +0000 Subject: [PATCH] * Adding missing files from last commit, finishing out [LIBOMV-320] * Added AvatarPreview to trunk * Switched from OpenSim Prebuild.exe to latest official SVN checkout * Replaced Exe with WinExe where appropriate in prebuild.xml git-svn-id: http://libopenmetaverse.googlecode.com/svn/trunk@1983 52acb1d6-8a22-11de-b505-999d5b087335 --- OpenMetaverse/Interfaces/IRendering.cs | 80 ++ OpenMetaverse/Rendering/LindenMesh.cs | 310 +++++ OpenMetaverse/Rendering/Rendering.cs | 281 ++++ Programs/AvatarPreview/GLMesh.cs | 120 ++ Programs/AvatarPreview/Program.cs | 20 + .../AvatarPreview/Properties/AssemblyInfo.cs | 33 + .../Properties/Resources.Designer.cs | 63 + .../AvatarPreview/Properties/Resources.resx | 117 ++ .../Properties/Settings.Designer.cs | 26 + .../Properties/Settings.settings | 7 + Programs/AvatarPreview/frmAvatar.Designer.cs | 1169 +++++++++++++++++ Programs/AvatarPreview/frmAvatar.cs | 465 +++++++ Programs/AvatarPreview/frmAvatar.resx | 126 ++ bin/Prebuild.exe | Bin 222720 -> 237568 bytes prebuild.xml | 52 +- 15 files changed, 2857 insertions(+), 12 deletions(-) create mode 100644 OpenMetaverse/Interfaces/IRendering.cs create mode 100644 OpenMetaverse/Rendering/LindenMesh.cs create mode 100644 OpenMetaverse/Rendering/Rendering.cs create mode 100644 Programs/AvatarPreview/GLMesh.cs create mode 100644 Programs/AvatarPreview/Program.cs create mode 100644 Programs/AvatarPreview/Properties/AssemblyInfo.cs create mode 100644 Programs/AvatarPreview/Properties/Resources.Designer.cs create mode 100644 Programs/AvatarPreview/Properties/Resources.resx create mode 100644 Programs/AvatarPreview/Properties/Settings.Designer.cs create mode 100644 Programs/AvatarPreview/Properties/Settings.settings create mode 100644 Programs/AvatarPreview/frmAvatar.Designer.cs create mode 100644 Programs/AvatarPreview/frmAvatar.cs create mode 100644 Programs/AvatarPreview/frmAvatar.resx diff --git a/OpenMetaverse/Interfaces/IRendering.cs b/OpenMetaverse/Interfaces/IRendering.cs new file mode 100644 index 00000000..8e8b09a6 --- /dev/null +++ b/OpenMetaverse/Interfaces/IRendering.cs @@ -0,0 +1,80 @@ +/* + * Copyright (c) 2008, openmetaverse.org + * All rights reserved. + * + * - Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * - Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * - Neither the name of the openmetaverse.org nor the names + * of its contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +using System; +using System.Collections.Generic; + +namespace OpenMetaverse.Rendering +{ + [AttributeUsage(AttributeTargets.Class)] + public class RendererNameAttribute : System.Attribute + { + private string _name; + + public RendererNameAttribute(string name) + : base() + { + _name = name; + } + + public override string ToString() + { + return _name; + } + } + + /// + /// Abstract base for rendering plugins + /// + public interface IRendering + { + /// + /// Generates a basic mesh structure from a primitive + /// + /// Primitive to generate the mesh from + /// Level of detail to generate the mesh at + /// The generated mesh + SimpleMesh GenerateSimpleMesh(Primitive prim, DetailLevel lod); + + /// + /// Generates a a series of faces, each face containing a mesh and + /// metadata + /// + /// Primitive to generate the mesh from + /// Level of detail to generate the mesh at + /// The generated mesh + FacetedMesh GenerateFacetedMesh(Primitive prim, DetailLevel lod); + + /// + /// Apply texture coordinate modifications from a + /// to a list of vertices + /// + /// Vertex list to modify texture coordinates for + /// Center-point of the face + /// Face texture parameters + void TransformTexCoords(List vertices, LLVector3 center, LLObject.TextureEntryFace teFace); + } +} diff --git a/OpenMetaverse/Rendering/LindenMesh.cs b/OpenMetaverse/Rendering/LindenMesh.cs new file mode 100644 index 00000000..bc46604b --- /dev/null +++ b/OpenMetaverse/Rendering/LindenMesh.cs @@ -0,0 +1,310 @@ +/* + * Copyright (c) 2008, openmetaverse.org + * All rights reserved. + * + * - Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * - Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * - Neither the name of the openmetaverse.org nor the names + * of its contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +using System; +using System.Collections.Generic; +using System.IO; + +namespace OpenMetaverse.Rendering +{ + public class LindenMesh + { + const string MESH_HEADER = "Linden Binary Mesh 1.0"; + const string MORPH_FOOTER = "End Morphs"; + + #region Mesh Structs + + public struct Face + { + public short[] Indices; + } + + public struct Vertex + { + public LLVector3 Coord; + public LLVector3 Normal; + public LLVector3 BiNormal; + public LLVector2 TexCoord; + public LLVector2 DetailTexCoord; + public float Weight; + + public override string ToString() + { + return String.Format("Coord: {0} Norm: {1} BiNorm: {2} TexCoord: {3} DetailTexCoord: {4}", Coord, Normal, BiNormal, TexCoord, DetailTexCoord, Weight); + } + } + + public struct MorphVertex + { + public uint VertexIndex; + public LLVector3 Coord; + public LLVector3 Normal; + public LLVector3 BiNormal; + public LLVector2 TexCoord; + + public override string ToString() + { + return String.Format("Index: {0} Coord: {1} Norm: {2} BiNorm: {3} TexCoord: {4}", VertexIndex, Coord, Normal, BiNormal, TexCoord); + } + } + + public struct Morph + { + public string Name; + public int NumVertices; + public MorphVertex[] Vertices; + + public override string ToString() + { + return Name; + } + } + + public struct VertexRemap + { + public int RemapSource; + public int RemapDestination; + + public override string ToString() + { + return String.Format("{0} -> {1}", RemapSource, RemapDestination); + } + } + + #endregion Mesh Structs + + /// + /// Level of Detail mesh + /// + public class LODMesh + { + public float MinPixelWidth; + + protected string _header; + protected bool _hasWeights; + protected bool _hasDetailTexCoords; + protected LLVector3 _position; + protected LLVector3 _rotationAngles; + protected byte _rotationOrder; + protected LLVector3 _scale; + protected ushort _numFaces; + protected Face[] _faces; + + public virtual void LoadMesh(string filename) + { + byte[] buffer = File.ReadAllBytes(filename); + BitPack input = new BitPack(buffer, 0); + + _header = input.UnpackString(24).TrimEnd(new char[] { '\0' }); + if (!String.Equals(_header, MESH_HEADER)) + throw new FileLoadException("Unrecognized mesh format"); + + // Populate base mesh variables + _hasWeights = (input.UnpackByte() != 0); + _hasDetailTexCoords = (input.UnpackByte() != 0); + _position = new LLVector3(input.UnpackFloat(), input.UnpackFloat(), input.UnpackFloat()); + _rotationAngles = new LLVector3(input.UnpackFloat(), input.UnpackFloat(), input.UnpackFloat()); + _rotationOrder = input.UnpackByte(); + _scale = new LLVector3(input.UnpackFloat(), input.UnpackFloat(), input.UnpackFloat()); + _numFaces = (ushort)input.UnpackUShort(); + + _faces = new Face[_numFaces]; + + for (int i = 0; i < _numFaces; i++) + _faces[i].Indices = new short[] { input.UnpackShort(), input.UnpackShort(), input.UnpackShort() }; + } + } + + public float MinPixelWidth; + + public string Name { get { return _name; } } + public string Header { get { return _header; } } + public bool HasWeights { get { return _hasWeights; } } + public bool HasDetailTexCoords { get { return _hasDetailTexCoords; } } + public LLVector3 Position { get { return _position; } } + public LLVector3 RotationAngles { get { return _rotationAngles; } } + //public byte RotationOrder + public LLVector3 Scale { get { return _scale; } } + public ushort NumVertices { get { return _numVertices; } } + public Vertex[] Vertices { get { return _vertices; } } + public ushort NumFaces { get { return _numFaces; } } + public Face[] Faces { get { return _faces; } } + public ushort NumSkinJoints { get { return _numSkinJoints; } } + public string[] SkinJoints { get { return _skinJoints; } } + public Morph[] Morphs { get { return _morphs; } } + public int NumRemaps { get { return _numRemaps; } } + public VertexRemap[] VertexRemaps { get { return _vertexRemaps; } } + public SortedList LODMeshes { get { return _lodMeshes; } } + + protected string _name; + protected string _header; + protected bool _hasWeights; + protected bool _hasDetailTexCoords; + protected LLVector3 _position; + protected LLVector3 _rotationAngles; + protected byte _rotationOrder; + protected LLVector3 _scale; + protected ushort _numVertices; + protected Vertex[] _vertices; + protected ushort _numFaces; + protected Face[] _faces; + protected ushort _numSkinJoints; + protected string[] _skinJoints; + protected Morph[] _morphs; + protected int _numRemaps; + protected VertexRemap[] _vertexRemaps; + protected SortedList _lodMeshes; + + public LindenMesh(string name) + { + _name = name; + _lodMeshes = new SortedList(); + } + + public virtual void LoadMesh(string filename) + { + byte[] buffer = File.ReadAllBytes(filename); + BitPack input = new BitPack(buffer, 0); + + _header = input.UnpackString(24).TrimEnd(new char[] { '\0' }); + if (!String.Equals(_header, MESH_HEADER)) + throw new FileLoadException("Unrecognized mesh format"); + + // Populate base mesh variables + _hasWeights = (input.UnpackByte() != 0); + _hasDetailTexCoords = (input.UnpackByte() != 0); + _position = new LLVector3(input.UnpackFloat(), input.UnpackFloat(), input.UnpackFloat()); + _rotationAngles = new LLVector3(input.UnpackFloat(), input.UnpackFloat(), input.UnpackFloat()); + _rotationOrder = input.UnpackByte(); + _scale = new LLVector3(input.UnpackFloat(), input.UnpackFloat(), input.UnpackFloat()); + _numVertices = (ushort)input.UnpackUShort(); + + // Populate the vertex array + _vertices = new Vertex[_numVertices]; + + for (int i = 0; i < _numVertices; i++) + _vertices[i].Coord = new LLVector3(input.UnpackFloat(), input.UnpackFloat(), input.UnpackFloat()); + + for (int i = 0; i < _numVertices; i++) + _vertices[i].Normal = new LLVector3(input.UnpackFloat(), input.UnpackFloat(), input.UnpackFloat()); + + for (int i = 0; i < _numVertices; i++) + _vertices[i].BiNormal = new LLVector3(input.UnpackFloat(), input.UnpackFloat(), input.UnpackFloat()); + + for (int i = 0; i < _numVertices; i++) + _vertices[i].TexCoord = new LLVector2(input.UnpackFloat(), input.UnpackFloat()); + + if (_hasDetailTexCoords) + { + for (int i = 0; i < _numVertices; i++) + _vertices[i].DetailTexCoord = new LLVector2(input.UnpackFloat(), input.UnpackFloat()); + } + + if (_hasWeights) + { + for (int i = 0; i < _numVertices; i++) + _vertices[i].Weight = input.UnpackFloat(); + } + + _numFaces = input.UnpackUShort(); + + _faces = new Face[_numFaces]; + + for (int i = 0; i < _numFaces; i++) + _faces[i].Indices = new short[] { input.UnpackShort(), input.UnpackShort(), input.UnpackShort() }; + + if (_hasWeights) + { + _numSkinJoints = input.UnpackUShort(); + _skinJoints = new string[_numSkinJoints]; + + for (int i = 0; i < _numSkinJoints; i++) + _skinJoints[i] = input.UnpackString(64).TrimEnd(new char[] { '\0' }); + } + else + { + _numSkinJoints = 0; + _skinJoints = new string[0]; + } + + // Grab morphs + List morphs = new List(); + string morphName = input.UnpackString(64).TrimEnd(new char[] { '\0' }); + + while (morphName != MORPH_FOOTER) + { + if (input.BytePos + 48 >= input.Data.Length) throw new FileLoadException("Encountered end of file while parsing morphs"); + + Morph morph = new Morph(); + morph.Name = morphName; + morph.NumVertices = input.UnpackInt(); + morph.Vertices = new MorphVertex[morph.NumVertices]; + + for (int i = 0; i < morph.NumVertices; i++) + { + MorphVertex vertex; + vertex.VertexIndex = input.UnpackUInt(); + vertex.Coord = new LLVector3(input.UnpackFloat(), input.UnpackFloat(), input.UnpackFloat()); + vertex.Normal = new LLVector3(input.UnpackFloat(), input.UnpackFloat(), input.UnpackFloat()); + vertex.BiNormal = new LLVector3(input.UnpackFloat(), input.UnpackFloat(), input.UnpackFloat()); + vertex.TexCoord = new LLVector2(input.UnpackFloat(), input.UnpackFloat()); + } + + morphs.Add(morph); + + // Grab the next name + morphName = input.UnpackString(64).TrimEnd(new char[] { '\0' }); + } + + _morphs = morphs.ToArray(); + + // Check if there are remaps or if we're at the end of the file + if (input.BytePos < input.Data.Length - 1) + { + _numRemaps = input.UnpackInt(); + _vertexRemaps = new VertexRemap[_numRemaps]; + + for (int i = 0; i < _numRemaps; i++) + { + _vertexRemaps[i].RemapSource = input.UnpackInt(); + _vertexRemaps[i].RemapDestination = input.UnpackInt(); + } + } + else + { + _numRemaps = 0; + _vertexRemaps = new VertexRemap[0]; + } + } + + public virtual void LoadLODMesh(int level, string filename) + { + LODMesh lod = new LODMesh(); + lod.LoadMesh(filename); + _lodMeshes[level] = lod; + } + } +} diff --git a/OpenMetaverse/Rendering/Rendering.cs b/OpenMetaverse/Rendering/Rendering.cs new file mode 100644 index 00000000..e34b0cba --- /dev/null +++ b/OpenMetaverse/Rendering/Rendering.cs @@ -0,0 +1,281 @@ +/* + * Copyright (c) 2008, openmetaverse.org + * All rights reserved. + * + * - Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * - Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * - Neither the name of the openmetaverse.org nor the names + * of its contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +using System; +using System.IO; +using System.Collections.Generic; +using System.Reflection; + +// The common elements shared between rendering plugins are defined here + +namespace OpenMetaverse.Rendering +{ + #region Enums + + public enum FaceType : ushort + { + PathBegin = 0x1 << 0, + PathEnd = 0x1 << 1, + InnerSide = 0x1 << 2, + ProfileBegin = 0x1 << 3, + ProfileEnd = 0x1 << 4, + OuterSide0 = 0x1 << 5, + OuterSide1 = 0x1 << 6, + OuterSide2 = 0x1 << 7, + OuterSide3 = 0x1 << 8 + } + + [Flags] + public enum FaceMask + { + Single = 0x0001, + Cap = 0x0002, + End = 0x0004, + Side = 0x0008, + Inner = 0x0010, + Outer = 0x0020, + Hollow = 0x0040, + Open = 0x0080, + Flat = 0x0100, + Top = 0x0200, + Bottom = 0x0400 + } + + public enum DetailLevel + { + Low = 0, + Medium = 1, + High = 2, + Highest = 3 + } + + #endregion Enums + + #region Structs + + public struct Vertex + { + public LLVector3 Position; + public LLVector3 Normal; + public LLVector3 Binormal; + public LLVector2 TexCoord; + } + + public struct ProfileFace + { + public int Index; + public int Count; + public float ScaleU; + public bool Cap; + public bool Flat; + public FaceType Type; + + public override string ToString() + { + return Type.ToString(); + } + }; + + public struct Profile + { + public float MinX; + public float MaxX; + public bool Open; + public bool Concave; + public int TotalOutsidePoints; + public List Positions; + public List Faces; + } + + public struct PathPoint + { + public LLVector3 Position; + public LLVector2 Scale; + public LLQuaternion Rotation; + public float TexT; + } + + public struct Path + { + public List Points; + public bool Open; + } + + public struct Face + { + // Only used for Inner/Outer faces + public int BeginS; + public int BeginT; + public int NumS; + public int NumT; + + public int ID; + public LLVector3 Center; + public LLVector3 MinExtent; + public LLVector3 MaxExtent; + public List Vertices; + public List Indices; + public List Edge; + public FaceMask Mask; + public LLObject.TextureEntryFace TextureFace; + public object UserData; + + public override string ToString() + { + return Mask.ToString(); + } + } + + #endregion Structs + + #region Exceptions + + public class RenderingException : Exception + { + public RenderingException(string message) + : base(message) + { + } + + public RenderingException(string message, Exception innerException) + : base(message, innerException) + { + } + } + + #endregion Exceptions + + #region Mesh Classes + + public class Mesh + { + public Primitive Prim; + public Path Path; + public Profile Profile; + + public override string ToString() + { + if (!String.IsNullOrEmpty(Prim.Properties.Name)) + { + return Prim.Properties.Name; + } + else + { + return String.Format("{0} ({1})", Prim.LocalID, Prim.Data); + } + } + } + + public class FacetedMesh : Mesh + { + public List Faces; + } + + public class SimpleMesh : Mesh + { + public List Vertices; + public List Indices; + } + + #endregion Mesh Classes + + #region Plugin Loading + + public static class RenderingLoader + { + public static List ListRenderers(string path) + { + List plugins = new List(); + string[] files = Directory.GetFiles(path, "OpenMetaverse.Rendering.*.dll"); + + foreach (string f in files) + { + try + { + Assembly a = Assembly.LoadFrom(f); + System.Type[] types = a.GetTypes(); + foreach (System.Type type in types) + { + if (type.GetInterface("IRendering") != null) + { + if (type.GetCustomAttributes(typeof(RendererNameAttribute), false).Length == 1) + { + plugins.Add(f); + } + else + { + Logger.Log("Rendering plugin does not support the [RendererName] attribute: " + f, + Helpers.LogLevel.Warning); + } + + break; + } + } + } + catch (Exception e) + { + Logger.Log(String.Format("Unrecognized rendering plugin {0}: {1}", f, e.Message), + Helpers.LogLevel.Warning, e); + } + } + + return plugins; + } + + public static IRendering LoadRenderer(string filename) + { + try + { + Assembly a = Assembly.LoadFrom(filename); + System.Type[] types = a.GetTypes(); + foreach (System.Type type in types) + { + if (type.GetInterface("IRendering") != null) + { + if (type.GetCustomAttributes(typeof(RendererNameAttribute), false).Length == 1) + { + return (IRendering)Activator.CreateInstance(type); + } + else + { + throw new RenderingException( + "Rendering plugin does not support the [RendererName] attribute"); + } + } + } + + throw new RenderingException( + "Rendering plugin does not support the IRendering interface"); + } + catch (Exception e) + { + throw new RenderingException("Failed loading rendering plugin: " + e.Message, e); + } + } + } + + #endregion Plugin Loading +} diff --git a/Programs/AvatarPreview/GLMesh.cs b/Programs/AvatarPreview/GLMesh.cs new file mode 100644 index 00000000..6d5c663a --- /dev/null +++ b/Programs/AvatarPreview/GLMesh.cs @@ -0,0 +1,120 @@ +using System; + +using OpenMetaverse; +using OpenMetaverse.Rendering; + +namespace AvatarPreview +{ + /// + /// Subclass of LindenMesh that adds vertex, index, and texture coordinate + /// arrays suitable for pushing direct to OpenGL + /// + public class GLMesh : LindenMesh + { + /// + /// Subclass of LODMesh that adds an index array suitable for pushing + /// direct to OpenGL + /// + new public class LODMesh : LindenMesh.LODMesh + { + public ushort[] Indices; + + public override void LoadMesh(string filename) + { + base.LoadMesh(filename); + + // Generate the index array + Indices = new ushort[_numFaces * 3]; + int current = 0; + for (int i = 0; i < _numFaces; i++) + { + Indices[current++] = (ushort)_faces[i].Indices[0]; + Indices[current++] = (ushort)_faces[i].Indices[1]; + Indices[current++] = (ushort)_faces[i].Indices[2]; + } + } + } + + /// + /// + /// + public struct GLData + { + public float[] Vertices; + public ushort[] Indices; + public float[] TexCoords; + public LLVector3 Center; + } + + public GLData RenderData; + + public GLMesh(string name) + : base(name) + { + } + + public override void LoadMesh(string filename) + { + base.LoadMesh(filename); + + float minX, minY, minZ; + minX = minY = minZ = Single.MaxValue; + float maxX, maxY, maxZ; + maxX = maxY = maxZ = Single.MinValue; + + // Generate the vertex array + RenderData.Vertices = new float[_numVertices * 3]; + int current = 0; + for (int i = 0; i < _numVertices; i++) + { + RenderData.Vertices[current++] = _vertices[i].Coord.X; + RenderData.Vertices[current++] = _vertices[i].Coord.Y; + RenderData.Vertices[current++] = _vertices[i].Coord.Z; + + if (_vertices[i].Coord.X < minX) + minX = _vertices[i].Coord.X; + else if (_vertices[i].Coord.X > maxX) + maxX = _vertices[i].Coord.X; + + if (_vertices[i].Coord.Y < minY) + minY = _vertices[i].Coord.Y; + else if (_vertices[i].Coord.Y > maxY) + maxY = _vertices[i].Coord.Y; + + if (_vertices[i].Coord.Z < minZ) + minZ = _vertices[i].Coord.Z; + else if (_vertices[i].Coord.Z > maxZ) + maxZ = _vertices[i].Coord.Z; + } + + // Calculate the center-point from the bounding box edges + RenderData.Center = new LLVector3((minX + maxX) / 2, (minY + maxY) / 2, (minZ + maxZ) / 2); + + // Generate the index array + RenderData.Indices = new ushort[_numFaces * 3]; + current = 0; + for (int i = 0; i < _numFaces; i++) + { + RenderData.Indices[current++] = (ushort)_faces[i].Indices[0]; + RenderData.Indices[current++] = (ushort)_faces[i].Indices[1]; + RenderData.Indices[current++] = (ushort)_faces[i].Indices[2]; + } + + // Generate the texcoord array + RenderData.TexCoords = new float[_numVertices * 2]; + current = 0; + for (int i = 0; i < _numVertices; i++) + { + RenderData.TexCoords[current++] = _vertices[i].TexCoord.X; + RenderData.TexCoords[current++] = _vertices[i].TexCoord.Y; + } + } + + public override void LoadLODMesh(int level, string filename) + { + LODMesh lod = new LODMesh(); + lod.LoadMesh(filename); + _lodMeshes[level] = lod; + } + } +} diff --git a/Programs/AvatarPreview/Program.cs b/Programs/AvatarPreview/Program.cs new file mode 100644 index 00000000..ca0b165b --- /dev/null +++ b/Programs/AvatarPreview/Program.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +namespace AvatarPreview +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new frmAvatar()); + } + } +} \ No newline at end of file diff --git a/Programs/AvatarPreview/Properties/AssemblyInfo.cs b/Programs/AvatarPreview/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..95726c51 --- /dev/null +++ b/Programs/AvatarPreview/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("avatarpreview")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Millions Of Us")] +[assembly: AssemblyProduct("avatarpreview")] +[assembly: AssemblyCopyright("Copyright © Millions Of Us 2008")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("00d5c128-fce6-4b58-b3b1-cad43b25ee0b")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Programs/AvatarPreview/Properties/Resources.Designer.cs b/Programs/AvatarPreview/Properties/Resources.Designer.cs new file mode 100644 index 00000000..efaa44ac --- /dev/null +++ b/Programs/AvatarPreview/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.1433 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace AvatarPreview.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("avatarpreview.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Programs/AvatarPreview/Properties/Resources.resx b/Programs/AvatarPreview/Properties/Resources.resx new file mode 100644 index 00000000..ffecec85 --- /dev/null +++ b/Programs/AvatarPreview/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Programs/AvatarPreview/Properties/Settings.Designer.cs b/Programs/AvatarPreview/Properties/Settings.Designer.cs new file mode 100644 index 00000000..7b0838d0 --- /dev/null +++ b/Programs/AvatarPreview/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.1433 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace AvatarPreview.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/Programs/AvatarPreview/Properties/Settings.settings b/Programs/AvatarPreview/Properties/Settings.settings new file mode 100644 index 00000000..abf36c5d --- /dev/null +++ b/Programs/AvatarPreview/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Programs/AvatarPreview/frmAvatar.Designer.cs b/Programs/AvatarPreview/frmAvatar.Designer.cs new file mode 100644 index 00000000..c06836d4 --- /dev/null +++ b/Programs/AvatarPreview/frmAvatar.Designer.cs @@ -0,0 +1,1169 @@ +namespace AvatarPreview +{ + partial class frmAvatar + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.menu = new System.Windows.Forms.MenuStrip(); + this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.opToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.lindenLabMeshToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.textureToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator(); + this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.viewToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.wireframeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.splitContainer1 = new System.Windows.Forms.SplitContainer(); + this.glControl = new Tao.Platform.Windows.SimpleOpenGlControl(); + this.tabControl = new System.Windows.Forms.TabControl(); + this.tavView = new System.Windows.Forms.TabPage(); + this.scrollZoom = new System.Windows.Forms.HScrollBar(); + this.label18 = new System.Windows.Forms.Label(); + this.label17 = new System.Windows.Forms.Label(); + this.label16 = new System.Windows.Forms.Label(); + this.label15 = new System.Windows.Forms.Label(); + this.scrollRoll = new System.Windows.Forms.HScrollBar(); + this.scrollPitch = new System.Windows.Forms.HScrollBar(); + this.scrollYaw = new System.Windows.Forms.HScrollBar(); + this.tabMorphs = new System.Windows.Forms.TabPage(); + this.splitContainer2 = new System.Windows.Forms.SplitContainer(); + this.lstMorphs = new System.Windows.Forms.ListBox(); + this.tabTextures = new System.Windows.Forms.TabPage(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.lblSkirt = new System.Windows.Forms.Label(); + this.lblLower = new System.Windows.Forms.Label(); + this.lblUpper = new System.Windows.Forms.Label(); + this.lblEyes = new System.Windows.Forms.Label(); + this.lblHead = new System.Windows.Forms.Label(); + this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel(); + this.picHeadBodypaint = new System.Windows.Forms.PictureBox(); + this.label1 = new System.Windows.Forms.Label(); + this.picHair = new System.Windows.Forms.PictureBox(); + this.label2 = new System.Windows.Forms.Label(); + this.picHeadBake = new System.Windows.Forms.PictureBox(); + this.flowLayoutPanel2 = new System.Windows.Forms.FlowLayoutPanel(); + this.picEyesBake = new System.Windows.Forms.PictureBox(); + this.flowLayoutPanel3 = new System.Windows.Forms.FlowLayoutPanel(); + this.picUpperBodypaint = new System.Windows.Forms.PictureBox(); + this.label3 = new System.Windows.Forms.Label(); + this.picUpperGloves = new System.Windows.Forms.PictureBox(); + this.label4 = new System.Windows.Forms.Label(); + this.picUpperUndershirt = new System.Windows.Forms.PictureBox(); + this.label5 = new System.Windows.Forms.Label(); + this.picUpperShirt = new System.Windows.Forms.PictureBox(); + this.label6 = new System.Windows.Forms.Label(); + this.picUpperJacket = new System.Windows.Forms.PictureBox(); + this.label7 = new System.Windows.Forms.Label(); + this.picUpperBodyBake = new System.Windows.Forms.PictureBox(); + this.flowLayoutPanel4 = new System.Windows.Forms.FlowLayoutPanel(); + this.picLowerBodypaint = new System.Windows.Forms.PictureBox(); + this.label8 = new System.Windows.Forms.Label(); + this.picLowerUnderpants = new System.Windows.Forms.PictureBox(); + this.label9 = new System.Windows.Forms.Label(); + this.picLowerSocks = new System.Windows.Forms.PictureBox(); + this.label10 = new System.Windows.Forms.Label(); + this.picLowerShoes = new System.Windows.Forms.PictureBox(); + this.label11 = new System.Windows.Forms.Label(); + this.picLowerPants = new System.Windows.Forms.PictureBox(); + this.label12 = new System.Windows.Forms.Label(); + this.picLowerJacket = new System.Windows.Forms.PictureBox(); + this.label13 = new System.Windows.Forms.Label(); + this.picLowerBodyBake = new System.Windows.Forms.PictureBox(); + this.flowLayoutPanel5 = new System.Windows.Forms.FlowLayoutPanel(); + this.picSkirtBake = new System.Windows.Forms.PictureBox(); + this.tabAnimations = new System.Windows.Forms.TabPage(); + this.button1 = new System.Windows.Forms.Button(); + this.label14 = new System.Windows.Forms.Label(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.skirtToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolTip = new System.Windows.Forms.ToolTip(this.components); + this.menu.SuspendLayout(); + this.splitContainer1.Panel1.SuspendLayout(); + this.splitContainer1.Panel2.SuspendLayout(); + this.splitContainer1.SuspendLayout(); + this.tabControl.SuspendLayout(); + this.tavView.SuspendLayout(); + this.tabMorphs.SuspendLayout(); + this.splitContainer2.Panel1.SuspendLayout(); + this.splitContainer2.SuspendLayout(); + this.tabTextures.SuspendLayout(); + this.tableLayoutPanel1.SuspendLayout(); + this.flowLayoutPanel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.picHeadBodypaint)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.picHair)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.picHeadBake)).BeginInit(); + this.flowLayoutPanel2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.picEyesBake)).BeginInit(); + this.flowLayoutPanel3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.picUpperBodypaint)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.picUpperGloves)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.picUpperUndershirt)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.picUpperShirt)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.picUpperJacket)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.picUpperBodyBake)).BeginInit(); + this.flowLayoutPanel4.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.picLowerBodypaint)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.picLowerUnderpants)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.picLowerSocks)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.picLowerShoes)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.picLowerPants)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.picLowerJacket)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.picLowerBodyBake)).BeginInit(); + this.flowLayoutPanel5.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.picSkirtBake)).BeginInit(); + this.tabAnimations.SuspendLayout(); + this.SuspendLayout(); + // + // menu + // + this.menu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.fileToolStripMenuItem, + this.viewToolStripMenuItem, + this.helpToolStripMenuItem}); + this.menu.Location = new System.Drawing.Point(0, 0); + this.menu.Name = "menu"; + this.menu.Size = new System.Drawing.Size(1117, 24); + this.menu.TabIndex = 1; + this.menu.Text = "menu"; + // + // fileToolStripMenuItem + // + this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.opToolStripMenuItem, + this.toolStripMenuItem2, + this.exitToolStripMenuItem}); + this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; + this.fileToolStripMenuItem.Size = new System.Drawing.Size(35, 20); + this.fileToolStripMenuItem.Text = "File"; + // + // opToolStripMenuItem + // + this.opToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.lindenLabMeshToolStripMenuItem, + this.textureToolStripMenuItem}); + this.opToolStripMenuItem.Name = "opToolStripMenuItem"; + this.opToolStripMenuItem.Size = new System.Drawing.Size(111, 22); + this.opToolStripMenuItem.Text = "Open"; + // + // lindenLabMeshToolStripMenuItem + // + this.lindenLabMeshToolStripMenuItem.Name = "lindenLabMeshToolStripMenuItem"; + this.lindenLabMeshToolStripMenuItem.Size = new System.Drawing.Size(123, 22); + this.lindenLabMeshToolStripMenuItem.Text = "Avatar"; + this.lindenLabMeshToolStripMenuItem.Click += new System.EventHandler(this.lindenLabMeshToolStripMenuItem_Click); + // + // textureToolStripMenuItem + // + this.textureToolStripMenuItem.Name = "textureToolStripMenuItem"; + this.textureToolStripMenuItem.Size = new System.Drawing.Size(123, 22); + this.textureToolStripMenuItem.Text = "Texture"; + this.textureToolStripMenuItem.Click += new System.EventHandler(this.textureToolStripMenuItem_Click); + // + // toolStripMenuItem2 + // + this.toolStripMenuItem2.Name = "toolStripMenuItem2"; + this.toolStripMenuItem2.Size = new System.Drawing.Size(108, 6); + // + // exitToolStripMenuItem + // + this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; + this.exitToolStripMenuItem.Size = new System.Drawing.Size(111, 22); + this.exitToolStripMenuItem.Text = "Exit"; + this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click); + // + // viewToolStripMenuItem + // + this.viewToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.wireframeToolStripMenuItem, + this.skirtToolStripMenuItem}); + this.viewToolStripMenuItem.Name = "viewToolStripMenuItem"; + this.viewToolStripMenuItem.Size = new System.Drawing.Size(41, 20); + this.viewToolStripMenuItem.Text = "View"; + // + // wireframeToolStripMenuItem + // + this.wireframeToolStripMenuItem.Checked = true; + this.wireframeToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked; + this.wireframeToolStripMenuItem.Name = "wireframeToolStripMenuItem"; + this.wireframeToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.wireframeToolStripMenuItem.Text = "Wireframe"; + this.wireframeToolStripMenuItem.Click += new System.EventHandler(this.wireframeToolStripMenuItem_Click); + // + // helpToolStripMenuItem + // + this.helpToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.aboutToolStripMenuItem}); + this.helpToolStripMenuItem.Name = "helpToolStripMenuItem"; + this.helpToolStripMenuItem.Size = new System.Drawing.Size(40, 20); + this.helpToolStripMenuItem.Text = "Help"; + // + // aboutToolStripMenuItem + // + this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem"; + this.aboutToolStripMenuItem.Size = new System.Drawing.Size(114, 22); + this.aboutToolStripMenuItem.Text = "About"; + this.aboutToolStripMenuItem.Click += new System.EventHandler(this.aboutToolStripMenuItem_Click); + // + // splitContainer1 + // + this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer1.Location = new System.Drawing.Point(0, 24); + this.splitContainer1.Name = "splitContainer1"; + // + // splitContainer1.Panel1 + // + this.splitContainer1.Panel1.Controls.Add(this.glControl); + // + // splitContainer1.Panel2 + // + this.splitContainer1.Panel2.Controls.Add(this.tabControl); + this.splitContainer1.Size = new System.Drawing.Size(1117, 653); + this.splitContainer1.SplitterDistance = 558; + this.splitContainer1.TabIndex = 2; + // + // glControl + // + this.glControl.AccumBits = ((byte)(0)); + this.glControl.AutoCheckErrors = false; + this.glControl.AutoFinish = false; + this.glControl.AutoMakeCurrent = true; + this.glControl.AutoSwapBuffers = true; + this.glControl.BackColor = System.Drawing.Color.Black; + this.glControl.ColorBits = ((byte)(32)); + this.glControl.DepthBits = ((byte)(16)); + this.glControl.Dock = System.Windows.Forms.DockStyle.Fill; + this.glControl.Location = new System.Drawing.Point(0, 0); + this.glControl.Name = "glControl"; + this.glControl.Size = new System.Drawing.Size(558, 653); + this.glControl.StencilBits = ((byte)(0)); + this.glControl.TabIndex = 0; + this.glControl.Paint += new System.Windows.Forms.PaintEventHandler(this.glControl_Paint); + this.glControl.Resize += new System.EventHandler(this.glControl_Resize); + // + // tabControl + // + this.tabControl.Controls.Add(this.tavView); + this.tabControl.Controls.Add(this.tabMorphs); + this.tabControl.Controls.Add(this.tabTextures); + this.tabControl.Controls.Add(this.tabAnimations); + this.tabControl.Dock = System.Windows.Forms.DockStyle.Fill; + this.tabControl.Location = new System.Drawing.Point(0, 0); + this.tabControl.Name = "tabControl"; + this.tabControl.SelectedIndex = 0; + this.tabControl.Size = new System.Drawing.Size(555, 653); + this.tabControl.TabIndex = 0; + // + // tavView + // + this.tavView.Controls.Add(this.scrollZoom); + this.tavView.Controls.Add(this.label18); + this.tavView.Controls.Add(this.label17); + this.tavView.Controls.Add(this.label16); + this.tavView.Controls.Add(this.label15); + this.tavView.Controls.Add(this.scrollRoll); + this.tavView.Controls.Add(this.scrollPitch); + this.tavView.Controls.Add(this.scrollYaw); + this.tavView.Location = new System.Drawing.Point(4, 22); + this.tavView.Name = "tavView"; + this.tavView.Size = new System.Drawing.Size(547, 627); + this.tavView.TabIndex = 3; + this.tavView.Text = "View"; + this.tavView.UseVisualStyleBackColor = true; + // + // scrollZoom + // + this.scrollZoom.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.scrollZoom.Location = new System.Drawing.Point(57, 85); + this.scrollZoom.Minimum = -200; + this.scrollZoom.Name = "scrollZoom"; + this.scrollZoom.Size = new System.Drawing.Size(442, 16); + this.scrollZoom.TabIndex = 25; + this.scrollZoom.Value = -50; + this.scrollZoom.ValueChanged += new System.EventHandler(this.scroll_ValueChanged); + // + // label18 + // + this.label18.AutoSize = true; + this.label18.Location = new System.Drawing.Point(11, 88); + this.label18.Name = "label18"; + this.label18.Size = new System.Drawing.Size(37, 13); + this.label18.TabIndex = 24; + this.label18.Text = "Zoom:"; + // + // label17 + // + this.label17.AutoSize = true; + this.label17.Location = new System.Drawing.Point(11, 63); + this.label17.Name = "label17"; + this.label17.Size = new System.Drawing.Size(31, 13); + this.label17.TabIndex = 23; + this.label17.Text = "Yaw:"; + // + // label16 + // + this.label16.AutoSize = true; + this.label16.Location = new System.Drawing.Point(11, 38); + this.label16.Name = "label16"; + this.label16.Size = new System.Drawing.Size(34, 13); + this.label16.TabIndex = 22; + this.label16.Text = "Pitch:"; + // + // label15 + // + this.label15.AutoSize = true; + this.label15.Location = new System.Drawing.Point(11, 10); + this.label15.Name = "label15"; + this.label15.Size = new System.Drawing.Size(28, 13); + this.label15.TabIndex = 21; + this.label15.Text = "Roll:"; + // + // scrollRoll + // + this.scrollRoll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.scrollRoll.Location = new System.Drawing.Point(57, 10); + this.scrollRoll.Maximum = 360; + this.scrollRoll.Name = "scrollRoll"; + this.scrollRoll.Size = new System.Drawing.Size(442, 16); + this.scrollRoll.TabIndex = 12; + this.scrollRoll.ValueChanged += new System.EventHandler(this.scroll_ValueChanged); + // + // scrollPitch + // + this.scrollPitch.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.scrollPitch.Location = new System.Drawing.Point(57, 35); + this.scrollPitch.Maximum = 360; + this.scrollPitch.Name = "scrollPitch"; + this.scrollPitch.Size = new System.Drawing.Size(442, 16); + this.scrollPitch.TabIndex = 13; + this.scrollPitch.ValueChanged += new System.EventHandler(this.scroll_ValueChanged); + // + // scrollYaw + // + this.scrollYaw.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.scrollYaw.Location = new System.Drawing.Point(57, 60); + this.scrollYaw.Maximum = 360; + this.scrollYaw.Name = "scrollYaw"; + this.scrollYaw.Size = new System.Drawing.Size(442, 16); + this.scrollYaw.TabIndex = 14; + this.scrollYaw.ValueChanged += new System.EventHandler(this.scroll_ValueChanged); + // + // tabMorphs + // + this.tabMorphs.Controls.Add(this.splitContainer2); + this.tabMorphs.Location = new System.Drawing.Point(4, 22); + this.tabMorphs.Name = "tabMorphs"; + this.tabMorphs.Padding = new System.Windows.Forms.Padding(3); + this.tabMorphs.Size = new System.Drawing.Size(547, 627); + this.tabMorphs.TabIndex = 0; + this.tabMorphs.Text = "Morphs"; + this.tabMorphs.UseVisualStyleBackColor = true; + // + // splitContainer2 + // + this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer2.Location = new System.Drawing.Point(3, 3); + this.splitContainer2.Name = "splitContainer2"; + // + // splitContainer2.Panel1 + // + this.splitContainer2.Panel1.Controls.Add(this.lstMorphs); + this.splitContainer2.Size = new System.Drawing.Size(541, 621); + this.splitContainer2.SplitterDistance = 180; + this.splitContainer2.TabIndex = 0; + // + // lstMorphs + // + this.lstMorphs.Dock = System.Windows.Forms.DockStyle.Fill; + this.lstMorphs.FormattingEnabled = true; + this.lstMorphs.Location = new System.Drawing.Point(0, 0); + this.lstMorphs.Name = "lstMorphs"; + this.lstMorphs.Size = new System.Drawing.Size(180, 615); + this.lstMorphs.TabIndex = 0; + // + // tabTextures + // + this.tabTextures.Controls.Add(this.tableLayoutPanel1); + this.tabTextures.Location = new System.Drawing.Point(4, 22); + this.tabTextures.Name = "tabTextures"; + this.tabTextures.Padding = new System.Windows.Forms.Padding(3); + this.tabTextures.Size = new System.Drawing.Size(547, 627); + this.tabTextures.TabIndex = 1; + this.tabTextures.Text = "Textures"; + this.tabTextures.UseVisualStyleBackColor = true; + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 1; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.Controls.Add(this.lblSkirt, 0, 8); + this.tableLayoutPanel1.Controls.Add(this.lblLower, 0, 6); + this.tableLayoutPanel1.Controls.Add(this.lblUpper, 0, 4); + this.tableLayoutPanel1.Controls.Add(this.lblEyes, 0, 2); + this.tableLayoutPanel1.Controls.Add(this.lblHead, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.flowLayoutPanel1, 0, 1); + this.tableLayoutPanel1.Controls.Add(this.flowLayoutPanel2, 0, 3); + this.tableLayoutPanel1.Controls.Add(this.flowLayoutPanel3, 0, 5); + this.tableLayoutPanel1.Controls.Add(this.flowLayoutPanel4, 0, 7); + this.tableLayoutPanel1.Controls.Add(this.flowLayoutPanel5, 0, 9); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 3); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 10; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 75F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 75F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 75F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(541, 621); + this.tableLayoutPanel1.TabIndex = 0; + // + // lblSkirt + // + this.lblSkirt.AutoSize = true; + this.lblSkirt.Dock = System.Windows.Forms.DockStyle.Left; + this.lblSkirt.Location = new System.Drawing.Point(3, 526); + this.lblSkirt.Name = "lblSkirt"; + this.lblSkirt.Size = new System.Drawing.Size(28, 20); + this.lblSkirt.TabIndex = 12; + this.lblSkirt.Text = "Skirt"; + this.lblSkirt.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // lblLower + // + this.lblLower.AutoSize = true; + this.lblLower.Dock = System.Windows.Forms.DockStyle.Left; + this.lblLower.Location = new System.Drawing.Point(3, 358); + this.lblLower.Name = "lblLower"; + this.lblLower.Size = new System.Drawing.Size(36, 20); + this.lblLower.TabIndex = 10; + this.lblLower.Text = "Lower"; + this.lblLower.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // lblUpper + // + this.lblUpper.AutoSize = true; + this.lblUpper.Dock = System.Windows.Forms.DockStyle.Left; + this.lblUpper.Location = new System.Drawing.Point(3, 190); + this.lblUpper.Name = "lblUpper"; + this.lblUpper.Size = new System.Drawing.Size(36, 20); + this.lblUpper.TabIndex = 8; + this.lblUpper.Text = "Upper"; + this.lblUpper.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // lblEyes + // + this.lblEyes.AutoSize = true; + this.lblEyes.Dock = System.Windows.Forms.DockStyle.Left; + this.lblEyes.Location = new System.Drawing.Point(3, 95); + this.lblEyes.Name = "lblEyes"; + this.lblEyes.Size = new System.Drawing.Size(30, 20); + this.lblEyes.TabIndex = 6; + this.lblEyes.Text = "Eyes"; + this.lblEyes.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // lblHead + // + this.lblHead.AutoSize = true; + this.lblHead.Dock = System.Windows.Forms.DockStyle.Left; + this.lblHead.Location = new System.Drawing.Point(3, 0); + this.lblHead.Name = "lblHead"; + this.lblHead.Size = new System.Drawing.Size(33, 20); + this.lblHead.TabIndex = 0; + this.lblHead.Text = "Head"; + this.lblHead.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // flowLayoutPanel1 + // + this.flowLayoutPanel1.Controls.Add(this.picHeadBodypaint); + this.flowLayoutPanel1.Controls.Add(this.label1); + this.flowLayoutPanel1.Controls.Add(this.picHair); + this.flowLayoutPanel1.Controls.Add(this.label2); + this.flowLayoutPanel1.Controls.Add(this.picHeadBake); + this.flowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.flowLayoutPanel1.Location = new System.Drawing.Point(3, 23); + this.flowLayoutPanel1.Name = "flowLayoutPanel1"; + this.flowLayoutPanel1.Size = new System.Drawing.Size(535, 69); + this.flowLayoutPanel1.TabIndex = 13; + // + // picHeadBodypaint + // + this.picHeadBodypaint.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.picHeadBodypaint.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.picHeadBodypaint.Cursor = System.Windows.Forms.Cursors.Hand; + this.picHeadBodypaint.Location = new System.Drawing.Point(3, 3); + this.picHeadBodypaint.Name = "picHeadBodypaint"; + this.picHeadBodypaint.Size = new System.Drawing.Size(64, 64); + this.picHeadBodypaint.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.picHeadBodypaint.TabIndex = 0; + this.picHeadBodypaint.TabStop = false; + this.picHeadBodypaint.Tag = "Head"; + this.toolTip.SetToolTip(this.picHeadBodypaint, "Head Bodypaint"); + this.picHeadBodypaint.MouseClick += new System.Windows.Forms.MouseEventHandler(this.pic_MouseClick); + // + // label1 + // + this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom))); + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(73, 0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(13, 70); + this.label1.TabIndex = 1; + this.label1.Text = "+"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // picHair + // + this.picHair.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.picHair.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.picHair.Cursor = System.Windows.Forms.Cursors.Hand; + this.picHair.Location = new System.Drawing.Point(92, 3); + this.picHair.Name = "picHair"; + this.picHair.Size = new System.Drawing.Size(64, 64); + this.picHair.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.picHair.TabIndex = 2; + this.picHair.TabStop = false; + this.picHair.Tag = "Head"; + this.toolTip.SetToolTip(this.picHair, "Hair"); + this.picHair.MouseClick += new System.Windows.Forms.MouseEventHandler(this.pic_MouseClick); + // + // label2 + // + this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom))); + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(162, 0); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(13, 70); + this.label2.TabIndex = 3; + this.label2.Text = "="; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // picHeadBake + // + this.picHeadBake.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.picHeadBake.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.picHeadBake.Cursor = System.Windows.Forms.Cursors.Hand; + this.picHeadBake.Location = new System.Drawing.Point(181, 3); + this.picHeadBake.Name = "picHeadBake"; + this.picHeadBake.Size = new System.Drawing.Size(64, 64); + this.picHeadBake.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.picHeadBake.TabIndex = 4; + this.picHeadBake.TabStop = false; + this.picHeadBake.Tag = "Bake"; + this.toolTip.SetToolTip(this.picHeadBake, "Head Final Bake"); + this.picHeadBake.MouseClick += new System.Windows.Forms.MouseEventHandler(this.pic_MouseClick); + // + // flowLayoutPanel2 + // + this.flowLayoutPanel2.Controls.Add(this.picEyesBake); + this.flowLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.flowLayoutPanel2.Location = new System.Drawing.Point(3, 118); + this.flowLayoutPanel2.Name = "flowLayoutPanel2"; + this.flowLayoutPanel2.Size = new System.Drawing.Size(535, 69); + this.flowLayoutPanel2.TabIndex = 14; + // + // picEyesBake + // + this.picEyesBake.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.picEyesBake.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.picEyesBake.Cursor = System.Windows.Forms.Cursors.Hand; + this.picEyesBake.Location = new System.Drawing.Point(3, 3); + this.picEyesBake.Name = "picEyesBake"; + this.picEyesBake.Size = new System.Drawing.Size(64, 64); + this.picEyesBake.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.picEyesBake.TabIndex = 1; + this.picEyesBake.TabStop = false; + this.picEyesBake.Tag = "Bake"; + this.toolTip.SetToolTip(this.picEyesBake, "Eyes Final Bake"); + this.picEyesBake.MouseClick += new System.Windows.Forms.MouseEventHandler(this.pic_MouseClick); + // + // flowLayoutPanel3 + // + this.flowLayoutPanel3.Controls.Add(this.picUpperBodypaint); + this.flowLayoutPanel3.Controls.Add(this.label3); + this.flowLayoutPanel3.Controls.Add(this.picUpperGloves); + this.flowLayoutPanel3.Controls.Add(this.label4); + this.flowLayoutPanel3.Controls.Add(this.picUpperUndershirt); + this.flowLayoutPanel3.Controls.Add(this.label5); + this.flowLayoutPanel3.Controls.Add(this.picUpperShirt); + this.flowLayoutPanel3.Controls.Add(this.label6); + this.flowLayoutPanel3.Controls.Add(this.picUpperJacket); + this.flowLayoutPanel3.Controls.Add(this.label7); + this.flowLayoutPanel3.Controls.Add(this.picUpperBodyBake); + this.flowLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill; + this.flowLayoutPanel3.Location = new System.Drawing.Point(3, 213); + this.flowLayoutPanel3.Name = "flowLayoutPanel3"; + this.flowLayoutPanel3.Size = new System.Drawing.Size(535, 142); + this.flowLayoutPanel3.TabIndex = 15; + // + // picUpperBodypaint + // + this.picUpperBodypaint.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.picUpperBodypaint.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.picUpperBodypaint.Cursor = System.Windows.Forms.Cursors.Hand; + this.picUpperBodypaint.Location = new System.Drawing.Point(3, 3); + this.picUpperBodypaint.Name = "picUpperBodypaint"; + this.picUpperBodypaint.Size = new System.Drawing.Size(64, 64); + this.picUpperBodypaint.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.picUpperBodypaint.TabIndex = 3; + this.picUpperBodypaint.TabStop = false; + this.picUpperBodypaint.Tag = "Upper"; + this.toolTip.SetToolTip(this.picUpperBodypaint, "Upper Bodypaint"); + this.picUpperBodypaint.MouseClick += new System.Windows.Forms.MouseEventHandler(this.pic_MouseClick); + // + // label3 + // + this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom))); + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(73, 0); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(13, 70); + this.label3.TabIndex = 4; + this.label3.Text = "+"; + this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // picUpperGloves + // + this.picUpperGloves.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.picUpperGloves.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.picUpperGloves.Cursor = System.Windows.Forms.Cursors.Hand; + this.picUpperGloves.Location = new System.Drawing.Point(92, 3); + this.picUpperGloves.Name = "picUpperGloves"; + this.picUpperGloves.Size = new System.Drawing.Size(64, 64); + this.picUpperGloves.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.picUpperGloves.TabIndex = 5; + this.picUpperGloves.TabStop = false; + this.picUpperGloves.Tag = "Upper"; + this.toolTip.SetToolTip(this.picUpperGloves, "Gloves"); + this.picUpperGloves.MouseClick += new System.Windows.Forms.MouseEventHandler(this.pic_MouseClick); + // + // label4 + // + this.label4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom))); + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(162, 0); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(13, 70); + this.label4.TabIndex = 6; + this.label4.Text = "+"; + this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // picUpperUndershirt + // + this.picUpperUndershirt.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.picUpperUndershirt.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.picUpperUndershirt.Cursor = System.Windows.Forms.Cursors.Hand; + this.picUpperUndershirt.Location = new System.Drawing.Point(181, 3); + this.picUpperUndershirt.Name = "picUpperUndershirt"; + this.picUpperUndershirt.Size = new System.Drawing.Size(64, 64); + this.picUpperUndershirt.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.picUpperUndershirt.TabIndex = 7; + this.picUpperUndershirt.TabStop = false; + this.picUpperUndershirt.Tag = "Upper"; + this.toolTip.SetToolTip(this.picUpperUndershirt, "Undershirt"); + this.picUpperUndershirt.MouseClick += new System.Windows.Forms.MouseEventHandler(this.pic_MouseClick); + // + // label5 + // + this.label5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom))); + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(251, 0); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(13, 70); + this.label5.TabIndex = 8; + this.label5.Text = "+"; + this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // picUpperShirt + // + this.picUpperShirt.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.picUpperShirt.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.picUpperShirt.Cursor = System.Windows.Forms.Cursors.Hand; + this.picUpperShirt.Location = new System.Drawing.Point(270, 3); + this.picUpperShirt.Name = "picUpperShirt"; + this.picUpperShirt.Size = new System.Drawing.Size(64, 64); + this.picUpperShirt.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.picUpperShirt.TabIndex = 9; + this.picUpperShirt.TabStop = false; + this.picUpperShirt.Tag = "Upper"; + this.toolTip.SetToolTip(this.picUpperShirt, "Shirt"); + this.picUpperShirt.MouseClick += new System.Windows.Forms.MouseEventHandler(this.pic_MouseClick); + // + // label6 + // + this.label6.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom))); + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(340, 0); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(13, 70); + this.label6.TabIndex = 10; + this.label6.Text = "+"; + this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // picUpperJacket + // + this.picUpperJacket.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.picUpperJacket.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.picUpperJacket.Cursor = System.Windows.Forms.Cursors.Hand; + this.picUpperJacket.Location = new System.Drawing.Point(359, 3); + this.picUpperJacket.Name = "picUpperJacket"; + this.picUpperJacket.Size = new System.Drawing.Size(64, 64); + this.picUpperJacket.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.picUpperJacket.TabIndex = 11; + this.picUpperJacket.TabStop = false; + this.picUpperJacket.Tag = "Upper"; + this.toolTip.SetToolTip(this.picUpperJacket, "Jacket"); + this.picUpperJacket.MouseClick += new System.Windows.Forms.MouseEventHandler(this.pic_MouseClick); + // + // label7 + // + this.label7.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom))); + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(429, 0); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(13, 70); + this.label7.TabIndex = 12; + this.label7.Text = "="; + this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // picUpperBodyBake + // + this.picUpperBodyBake.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.picUpperBodyBake.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.picUpperBodyBake.Cursor = System.Windows.Forms.Cursors.Hand; + this.picUpperBodyBake.Location = new System.Drawing.Point(448, 3); + this.picUpperBodyBake.Name = "picUpperBodyBake"; + this.picUpperBodyBake.Size = new System.Drawing.Size(64, 64); + this.picUpperBodyBake.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.picUpperBodyBake.TabIndex = 13; + this.picUpperBodyBake.TabStop = false; + this.picUpperBodyBake.Tag = "Bake"; + this.toolTip.SetToolTip(this.picUpperBodyBake, "Upper Final Bake"); + this.picUpperBodyBake.MouseClick += new System.Windows.Forms.MouseEventHandler(this.pic_MouseClick); + // + // flowLayoutPanel4 + // + this.flowLayoutPanel4.Controls.Add(this.picLowerBodypaint); + this.flowLayoutPanel4.Controls.Add(this.label8); + this.flowLayoutPanel4.Controls.Add(this.picLowerUnderpants); + this.flowLayoutPanel4.Controls.Add(this.label9); + this.flowLayoutPanel4.Controls.Add(this.picLowerSocks); + this.flowLayoutPanel4.Controls.Add(this.label10); + this.flowLayoutPanel4.Controls.Add(this.picLowerShoes); + this.flowLayoutPanel4.Controls.Add(this.label11); + this.flowLayoutPanel4.Controls.Add(this.picLowerPants); + this.flowLayoutPanel4.Controls.Add(this.label12); + this.flowLayoutPanel4.Controls.Add(this.picLowerJacket); + this.flowLayoutPanel4.Controls.Add(this.label13); + this.flowLayoutPanel4.Controls.Add(this.picLowerBodyBake); + this.flowLayoutPanel4.Dock = System.Windows.Forms.DockStyle.Fill; + this.flowLayoutPanel4.Location = new System.Drawing.Point(3, 381); + this.flowLayoutPanel4.Name = "flowLayoutPanel4"; + this.flowLayoutPanel4.Size = new System.Drawing.Size(535, 142); + this.flowLayoutPanel4.TabIndex = 16; + // + // picLowerBodypaint + // + this.picLowerBodypaint.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.picLowerBodypaint.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.picLowerBodypaint.Cursor = System.Windows.Forms.Cursors.Hand; + this.picLowerBodypaint.Location = new System.Drawing.Point(3, 3); + this.picLowerBodypaint.Name = "picLowerBodypaint"; + this.picLowerBodypaint.Size = new System.Drawing.Size(64, 64); + this.picLowerBodypaint.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.picLowerBodypaint.TabIndex = 14; + this.picLowerBodypaint.TabStop = false; + this.picLowerBodypaint.Tag = "Lower"; + this.toolTip.SetToolTip(this.picLowerBodypaint, "Lower Bodypaint"); + this.picLowerBodypaint.MouseClick += new System.Windows.Forms.MouseEventHandler(this.pic_MouseClick); + // + // label8 + // + this.label8.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom))); + this.label8.AutoSize = true; + this.label8.Location = new System.Drawing.Point(73, 0); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(13, 70); + this.label8.TabIndex = 15; + this.label8.Text = "+"; + this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // picLowerUnderpants + // + this.picLowerUnderpants.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.picLowerUnderpants.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.picLowerUnderpants.Cursor = System.Windows.Forms.Cursors.Hand; + this.picLowerUnderpants.Location = new System.Drawing.Point(92, 3); + this.picLowerUnderpants.Name = "picLowerUnderpants"; + this.picLowerUnderpants.Size = new System.Drawing.Size(64, 64); + this.picLowerUnderpants.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.picLowerUnderpants.TabIndex = 16; + this.picLowerUnderpants.TabStop = false; + this.picLowerUnderpants.Tag = "Lower"; + this.toolTip.SetToolTip(this.picLowerUnderpants, "Underpants"); + this.picLowerUnderpants.MouseClick += new System.Windows.Forms.MouseEventHandler(this.pic_MouseClick); + // + // label9 + // + this.label9.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom))); + this.label9.AutoSize = true; + this.label9.Location = new System.Drawing.Point(162, 0); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(13, 70); + this.label9.TabIndex = 17; + this.label9.Text = "+"; + this.label9.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // picLowerSocks + // + this.picLowerSocks.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.picLowerSocks.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.picLowerSocks.Cursor = System.Windows.Forms.Cursors.Hand; + this.picLowerSocks.Location = new System.Drawing.Point(181, 3); + this.picLowerSocks.Name = "picLowerSocks"; + this.picLowerSocks.Size = new System.Drawing.Size(64, 64); + this.picLowerSocks.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.picLowerSocks.TabIndex = 18; + this.picLowerSocks.TabStop = false; + this.picLowerSocks.Tag = "Lower"; + this.toolTip.SetToolTip(this.picLowerSocks, "Socks"); + this.picLowerSocks.MouseClick += new System.Windows.Forms.MouseEventHandler(this.pic_MouseClick); + // + // label10 + // + this.label10.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom))); + this.label10.AutoSize = true; + this.label10.Location = new System.Drawing.Point(251, 0); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(13, 70); + this.label10.TabIndex = 19; + this.label10.Text = "+"; + this.label10.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // picLowerShoes + // + this.picLowerShoes.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.picLowerShoes.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.picLowerShoes.Cursor = System.Windows.Forms.Cursors.Hand; + this.picLowerShoes.Location = new System.Drawing.Point(270, 3); + this.picLowerShoes.Name = "picLowerShoes"; + this.picLowerShoes.Size = new System.Drawing.Size(64, 64); + this.picLowerShoes.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.picLowerShoes.TabIndex = 20; + this.picLowerShoes.TabStop = false; + this.picLowerShoes.Tag = "Lower"; + this.toolTip.SetToolTip(this.picLowerShoes, "Shoes"); + this.picLowerShoes.MouseClick += new System.Windows.Forms.MouseEventHandler(this.pic_MouseClick); + // + // label11 + // + this.label11.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom))); + this.label11.AutoSize = true; + this.label11.Location = new System.Drawing.Point(340, 0); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(13, 70); + this.label11.TabIndex = 21; + this.label11.Text = "+"; + this.label11.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // picLowerPants + // + this.picLowerPants.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.picLowerPants.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.picLowerPants.Cursor = System.Windows.Forms.Cursors.Hand; + this.picLowerPants.Location = new System.Drawing.Point(359, 3); + this.picLowerPants.Name = "picLowerPants"; + this.picLowerPants.Size = new System.Drawing.Size(64, 64); + this.picLowerPants.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.picLowerPants.TabIndex = 22; + this.picLowerPants.TabStop = false; + this.picLowerPants.Tag = "Lower"; + this.toolTip.SetToolTip(this.picLowerPants, "Pants"); + this.picLowerPants.MouseClick += new System.Windows.Forms.MouseEventHandler(this.pic_MouseClick); + // + // label12 + // + this.label12.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom))); + this.label12.AutoSize = true; + this.label12.Location = new System.Drawing.Point(429, 0); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(13, 70); + this.label12.TabIndex = 23; + this.label12.Text = "+"; + this.label12.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // picLowerJacket + // + this.picLowerJacket.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.picLowerJacket.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.picLowerJacket.Cursor = System.Windows.Forms.Cursors.Hand; + this.picLowerJacket.Location = new System.Drawing.Point(448, 3); + this.picLowerJacket.Name = "picLowerJacket"; + this.picLowerJacket.Size = new System.Drawing.Size(64, 64); + this.picLowerJacket.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.picLowerJacket.TabIndex = 24; + this.picLowerJacket.TabStop = false; + this.picLowerJacket.Tag = "Lower"; + this.toolTip.SetToolTip(this.picLowerJacket, "Jacket"); + this.picLowerJacket.MouseClick += new System.Windows.Forms.MouseEventHandler(this.pic_MouseClick); + // + // label13 + // + this.label13.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom))); + this.label13.AutoSize = true; + this.label13.Location = new System.Drawing.Point(518, 0); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size(13, 70); + this.label13.TabIndex = 25; + this.label13.Text = "="; + this.label13.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // picLowerBodyBake + // + this.picLowerBodyBake.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.picLowerBodyBake.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.picLowerBodyBake.Cursor = System.Windows.Forms.Cursors.Hand; + this.picLowerBodyBake.Location = new System.Drawing.Point(3, 73); + this.picLowerBodyBake.Name = "picLowerBodyBake"; + this.picLowerBodyBake.Size = new System.Drawing.Size(64, 64); + this.picLowerBodyBake.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.picLowerBodyBake.TabIndex = 26; + this.picLowerBodyBake.TabStop = false; + this.picLowerBodyBake.Tag = "Bake"; + this.toolTip.SetToolTip(this.picLowerBodyBake, "Lower Final Bake"); + this.picLowerBodyBake.MouseClick += new System.Windows.Forms.MouseEventHandler(this.pic_MouseClick); + // + // flowLayoutPanel5 + // + this.flowLayoutPanel5.Controls.Add(this.picSkirtBake); + this.flowLayoutPanel5.Dock = System.Windows.Forms.DockStyle.Fill; + this.flowLayoutPanel5.Location = new System.Drawing.Point(3, 549); + this.flowLayoutPanel5.Name = "flowLayoutPanel5"; + this.flowLayoutPanel5.Size = new System.Drawing.Size(535, 69); + this.flowLayoutPanel5.TabIndex = 17; + // + // picSkirtBake + // + this.picSkirtBake.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.picSkirtBake.Location = new System.Drawing.Point(3, 3); + this.picSkirtBake.Name = "picSkirtBake"; + this.picSkirtBake.Size = new System.Drawing.Size(64, 64); + this.picSkirtBake.TabIndex = 2; + this.picSkirtBake.TabStop = false; + this.picSkirtBake.Tag = "Bake"; + this.toolTip.SetToolTip(this.picSkirtBake, "Skirt Final Bake"); + // + // tabAnimations + // + this.tabAnimations.Controls.Add(this.button1); + this.tabAnimations.Controls.Add(this.label14); + this.tabAnimations.Controls.Add(this.textBox1); + this.tabAnimations.Location = new System.Drawing.Point(4, 22); + this.tabAnimations.Name = "tabAnimations"; + this.tabAnimations.Size = new System.Drawing.Size(547, 627); + this.tabAnimations.TabIndex = 2; + this.tabAnimations.Text = "Animations"; + this.tabAnimations.UseVisualStyleBackColor = true; + // + // button1 + // + this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.button1.Location = new System.Drawing.Point(464, 20); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(75, 23); + this.button1.TabIndex = 2; + this.button1.Text = "Browse..."; + this.button1.UseVisualStyleBackColor = true; + // + // label14 + // + this.label14.AutoSize = true; + this.label14.Location = new System.Drawing.Point(7, 7); + this.label14.Name = "label14"; + this.label14.Size = new System.Drawing.Size(168, 13); + this.label14.TabIndex = 1; + this.label14.Text = "Animation File (.animation or .bvh):"; + // + // textBox1 + // + this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.textBox1.Location = new System.Drawing.Point(10, 23); + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(448, 20); + this.textBox1.TabIndex = 0; + // + // skirtToolStripMenuItem + // + this.skirtToolStripMenuItem.Name = "skirtToolStripMenuItem"; + this.skirtToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.skirtToolStripMenuItem.Text = "Skirt"; + this.skirtToolStripMenuItem.Click += new System.EventHandler(this.skirtToolStripMenuItem_Click); + // + // frmAvatar + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1117, 677); + this.Controls.Add(this.splitContainer1); + this.Controls.Add(this.menu); + this.Name = "frmAvatar"; + this.Text = "Avatar Preview"; + this.menu.ResumeLayout(false); + this.menu.PerformLayout(); + this.splitContainer1.Panel1.ResumeLayout(false); + this.splitContainer1.Panel2.ResumeLayout(false); + this.splitContainer1.ResumeLayout(false); + this.tabControl.ResumeLayout(false); + this.tavView.ResumeLayout(false); + this.tavView.PerformLayout(); + this.tabMorphs.ResumeLayout(false); + this.splitContainer2.Panel1.ResumeLayout(false); + this.splitContainer2.ResumeLayout(false); + this.tabTextures.ResumeLayout(false); + this.tableLayoutPanel1.ResumeLayout(false); + this.tableLayoutPanel1.PerformLayout(); + this.flowLayoutPanel1.ResumeLayout(false); + this.flowLayoutPanel1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.picHeadBodypaint)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.picHair)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.picHeadBake)).EndInit(); + this.flowLayoutPanel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.picEyesBake)).EndInit(); + this.flowLayoutPanel3.ResumeLayout(false); + this.flowLayoutPanel3.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.picUpperBodypaint)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.picUpperGloves)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.picUpperUndershirt)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.picUpperShirt)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.picUpperJacket)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.picUpperBodyBake)).EndInit(); + this.flowLayoutPanel4.ResumeLayout(false); + this.flowLayoutPanel4.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.picLowerBodypaint)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.picLowerUnderpants)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.picLowerSocks)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.picLowerShoes)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.picLowerPants)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.picLowerJacket)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.picLowerBodyBake)).EndInit(); + this.flowLayoutPanel5.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.picSkirtBake)).EndInit(); + this.tabAnimations.ResumeLayout(false); + this.tabAnimations.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.MenuStrip menu; + private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem opToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem lindenLabMeshToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem textureToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem2; + private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem viewToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem wireframeToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem helpToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem aboutToolStripMenuItem; + private System.Windows.Forms.SplitContainer splitContainer1; + private Tao.Platform.Windows.SimpleOpenGlControl glControl; + private System.Windows.Forms.TabControl tabControl; + private System.Windows.Forms.TabPage tabMorphs; + private System.Windows.Forms.TabPage tabTextures; + private System.Windows.Forms.TabPage tabAnimations; + private System.Windows.Forms.SplitContainer splitContainer2; + private System.Windows.Forms.ListBox lstMorphs; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Label lblUpper; + private System.Windows.Forms.Label lblEyes; + private System.Windows.Forms.Label lblHead; + private System.Windows.Forms.Label lblSkirt; + private System.Windows.Forms.Label lblLower; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1; + private System.Windows.Forms.PictureBox picHeadBodypaint; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel2; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel3; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel4; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel5; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.PictureBox picHair; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.PictureBox picHeadBake; + private System.Windows.Forms.PictureBox picEyesBake; + private System.Windows.Forms.PictureBox picUpperBodypaint; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.PictureBox picUpperGloves; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.PictureBox picUpperUndershirt; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.PictureBox picUpperShirt; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.PictureBox picUpperJacket; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.PictureBox picUpperBodyBake; + private System.Windows.Forms.PictureBox picLowerBodypaint; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.PictureBox picLowerUnderpants; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.PictureBox picLowerSocks; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.PictureBox picLowerShoes; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.PictureBox picLowerPants; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.PictureBox picLowerJacket; + private System.Windows.Forms.Label label13; + private System.Windows.Forms.PictureBox picLowerBodyBake; + private System.Windows.Forms.PictureBox picSkirtBake; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Label label14; + private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.TabPage tavView; + private System.Windows.Forms.HScrollBar scrollRoll; + private System.Windows.Forms.HScrollBar scrollPitch; + private System.Windows.Forms.HScrollBar scrollYaw; + private System.Windows.Forms.HScrollBar scrollZoom; + private System.Windows.Forms.Label label18; + private System.Windows.Forms.Label label17; + private System.Windows.Forms.Label label16; + private System.Windows.Forms.Label label15; + private System.Windows.Forms.ToolStripMenuItem skirtToolStripMenuItem; + private System.Windows.Forms.ToolTip toolTip; + } +} + diff --git a/Programs/AvatarPreview/frmAvatar.cs b/Programs/AvatarPreview/frmAvatar.cs new file mode 100644 index 00000000..964921c3 --- /dev/null +++ b/Programs/AvatarPreview/frmAvatar.cs @@ -0,0 +1,465 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using System.IO; +using System.Xml; + +using Tao.OpenGl; +using Tao.Platform.Windows; + +using OpenMetaverse; +using OpenMetaverse.Imaging; +using OpenMetaverse.Rendering; + +namespace AvatarPreview +{ + public partial class frmAvatar : Form + { + GridClient _client = new GridClient(); + Dictionary _meshes = new Dictionary(); + bool _wireframe = true; + bool _showSkirt = false; + + public frmAvatar() + { + InitializeComponent(); + + glControl.InitializeContexts(); + + Gl.glShadeModel(Gl.GL_SMOOTH); + Gl.glClearColor(0f, 0f, 0f, 0f); + + Gl.glClearDepth(1.0f); + Gl.glEnable(Gl.GL_DEPTH_TEST); + Gl.glDepthMask(Gl.GL_TRUE); + Gl.glDepthFunc(Gl.GL_LEQUAL); + Gl.glHint(Gl.GL_PERSPECTIVE_CORRECTION_HINT, Gl.GL_NICEST); + + glControl_Resize(null, null); + } + + private void lindenLabMeshToolStripMenuItem_Click(object sender, EventArgs e) + { + OpenFileDialog dialog = new OpenFileDialog(); + dialog.Filter = "avatar_lad.xml|avatar_lad.xml"; + + if (dialog.ShowDialog() == DialogResult.OK) + { + _meshes.Clear(); + + try + { + // Parse through avatar_lad.xml to find all of the mesh references + XmlDocument lad = new XmlDocument(); + lad.Load(dialog.FileName); + + XmlNodeList meshes = lad.GetElementsByTagName("mesh"); + + foreach (XmlNode meshNode in meshes) + { + string type = meshNode.Attributes.GetNamedItem("type").Value; + int lod = Int32.Parse(meshNode.Attributes.GetNamedItem("lod").Value); + string fileName = meshNode.Attributes.GetNamedItem("file_name").Value; + string minPixelWidth = meshNode.Attributes.GetNamedItem("min_pixel_width").Value; + + // Mash up the filename with the current path + fileName = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(dialog.FileName), fileName); + + GLMesh mesh = (_meshes.ContainsKey(type) ? _meshes[type] : new GLMesh(type)); + + if (lod == 0) + { + mesh.LoadMesh(fileName); + } + else + { + mesh.LoadLODMesh(lod, fileName); + } + + _meshes[type] = mesh; + glControl_Resize(null, null); + glControl.Invalidate(); + } + } + catch (Exception ex) + { + MessageBox.Show("Failed to load avatar mesh: " + ex.Message); + } + } + } + + private void textureToolStripMenuItem_Click(object sender, EventArgs e) + { + + } + + private void exitToolStripMenuItem_Click(object sender, EventArgs e) + { + + } + + private void wireframeToolStripMenuItem_Click(object sender, EventArgs e) + { + wireframeToolStripMenuItem.Checked = !wireframeToolStripMenuItem.Checked; + _wireframe = wireframeToolStripMenuItem.Checked; + + glControl.Invalidate(); + } + + private void skirtToolStripMenuItem_Click(object sender, EventArgs e) + { + skirtToolStripMenuItem.Checked = !skirtToolStripMenuItem.Checked; + _showSkirt = skirtToolStripMenuItem.Checked; + + glControl.Invalidate(); + } + + private void aboutToolStripMenuItem_Click(object sender, EventArgs e) + { + MessageBox.Show( + "Written by John Hurliman (http://www.jhurliman.org/)"); + } + + private void glControl_Paint(object sender, PaintEventArgs e) + { + Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT); + Gl.glLoadIdentity(); + + // Setup wireframe or solid fill drawing mode + if (_wireframe) + Gl.glPolygonMode(Gl.GL_FRONT_AND_BACK, Gl.GL_LINE); + else + Gl.glPolygonMode(Gl.GL_FRONT, Gl.GL_FILL); + + // Push the world matrix + Gl.glPushMatrix(); + + Gl.glEnableClientState(Gl.GL_VERTEX_ARRAY); + Gl.glEnableClientState(Gl.GL_TEXTURE_COORD_ARRAY); + + // World rotations + Gl.glRotatef((float)scrollRoll.Value, 1f, 0f, 0f); + Gl.glRotatef((float)scrollPitch.Value, 0f, 1f, 0f); + Gl.glRotatef((float)scrollYaw.Value, 0f, 0f, 1f); + + if (_meshes.Count > 0) + { + foreach (GLMesh mesh in _meshes.Values) + { + if (!_showSkirt && mesh.Name == "skirtMesh") + continue; + + Gl.glColor3f(1f, 1f, 1f); + + // Individual prim matrix + Gl.glPushMatrix(); + + //Gl.glTranslatef(mesh.Position.X, mesh.Position.Y, mesh.Position.Z); + + Gl.glRotatef(mesh.RotationAngles.X, 1f, 0f, 0f); + Gl.glRotatef(mesh.RotationAngles.Y, 0f, 1f, 0f); + Gl.glRotatef(mesh.RotationAngles.Z, 0f, 0f, 1f); + + Gl.glScalef(mesh.Scale.X, mesh.Scale.Y, mesh.Scale.Z); + + // TODO: Texturing + + Gl.glTexCoordPointer(2, Gl.GL_FLOAT, 0, mesh.RenderData.TexCoords); + Gl.glVertexPointer(3, Gl.GL_FLOAT, 0, mesh.RenderData.Vertices); + Gl.glDrawElements(Gl.GL_TRIANGLES, mesh.RenderData.Indices.Length, Gl.GL_UNSIGNED_SHORT, mesh.RenderData.Indices); + } + } + + // Pop the world matrix + Gl.glPopMatrix(); + + Gl.glDisableClientState(Gl.GL_TEXTURE_COORD_ARRAY); + Gl.glDisableClientState(Gl.GL_VERTEX_ARRAY); + + Gl.glFlush(); + } + + private void glControl_Resize(object sender, EventArgs e) + { + //Gl.glClearColor(0.39f, 0.58f, 0.93f, 1.0f); // Cornflower blue anyone? + Gl.glClearColor(0f, 0f, 0f, 1f); + + Gl.glPushMatrix(); + Gl.glMatrixMode(Gl.GL_PROJECTION); + Gl.glLoadIdentity(); + + Gl.glViewport(0, 0, glControl.Width, glControl.Height); + + Glu.gluPerspective(50.0d, 1.0d, 0.001d, 50d); + + LLVector3 center = LLVector3.Zero; + GLMesh head, lowerBody; + if (_meshes.TryGetValue("headMesh", out head) && _meshes.TryGetValue("lowerBodyMesh", out lowerBody)) + center = (head.RenderData.Center + lowerBody.RenderData.Center) / 2f; + + Glu.gluLookAt( + center.X, (double)scrollZoom.Value * 0.1d + center.Y, center.Z, + center.X, (double)scrollZoom.Value * 0.1d + center.Y + 1d, center.Z, + 0d, 0d, 1d); + + Gl.glMatrixMode(Gl.GL_MODELVIEW); + } + + private void scroll_ValueChanged(object sender, EventArgs e) + { + glControl_Resize(null, null); + glControl.Invalidate(); + } + + private void pic_MouseClick(object sender, MouseEventArgs e) + { + PictureBox control = (PictureBox)sender; + + OpenFileDialog dialog = new OpenFileDialog(); + // TODO: Setup a dialog.Filter for supported image types + + if (dialog.ShowDialog() == DialogResult.OK) + { + try + { + System.Drawing.Image image = System.Drawing.Image.FromFile(dialog.FileName); + + #region Dimensions Check + + if (control == picEyesBake) + { + // Eyes texture is 128x128 + if (Width != 128 || Height != 128) + { + Bitmap resized = new Bitmap(128, 128, image.PixelFormat); + Graphics graphics = Graphics.FromImage(resized); + + graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; + graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; + graphics.DrawImage(image, 0, 0, 128, 128); + + image.Dispose(); + image = resized; + } + } + else + { + // Other textures are 512x512 + if (Width != 128 || Height != 128) + { + Bitmap resized = new Bitmap(512, 512, image.PixelFormat); + Graphics graphics = Graphics.FromImage(resized); + + graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; + graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; + graphics.DrawImage(image, 0, 0, 512, 512); + + image.Dispose(); + image = resized; + } + } + + #endregion Dimensions Check + + // Set the control image + control.Image = image; + } + catch (Exception ex) + { + MessageBox.Show("Failed to load image: " + ex.Message); + } + } + else + { + control.Image = null; + } + + #region Baking + + Dictionary paramValues = GetParamValues(); + Dictionary layers = + new Dictionary(); + int textureCount = 0; + + if ((string)control.Tag == "Head") + { + if (picHair.Image != null) + { + layers.Add(AppearanceManager.TextureIndex.Hair, + new AssetTexture(new ManagedImage((Bitmap)picHair.Image))); + ++textureCount; + } + if (picHeadBodypaint.Image != null) + { + layers.Add(AppearanceManager.TextureIndex.HeadBodypaint, + new AssetTexture(new ManagedImage((Bitmap)picHeadBodypaint.Image))); + ++textureCount; + } + + // Compute the head bake + Baker baker = new Baker( + _client, AppearanceManager.BakeType.Head, textureCount, paramValues); + + foreach (KeyValuePair kvp in layers) + baker.AddTexture(kvp.Key, kvp.Value, false); + + if (baker.BakedTexture != null) + { + AssetTexture bakeAsset = baker.BakedTexture; + // Baked textures use the alpha layer for other purposes, so we need to not use it + bakeAsset.Image.Channels = ManagedImage.ImageChannels.Color; + picHeadBake.Image = LoadTGAClass.LoadTGA(new MemoryStream(bakeAsset.Image.ExportTGA())); + } + else + { + MessageBox.Show("Failed to create the bake layer, unknown error"); + } + } + else if ((string)control.Tag == "Upper") + { + if (picUpperBodypaint.Image != null) + { + layers.Add(AppearanceManager.TextureIndex.UpperBodypaint, + new AssetTexture(new ManagedImage((Bitmap)picUpperBodypaint.Image))); + ++textureCount; + } + if (picUpperGloves.Image != null) + { + layers.Add(AppearanceManager.TextureIndex.UpperGloves, + new AssetTexture(new ManagedImage((Bitmap)picUpperGloves.Image))); + ++textureCount; + } + if (picUpperUndershirt.Image != null) + { + layers.Add(AppearanceManager.TextureIndex.UpperUndershirt, + new AssetTexture(new ManagedImage((Bitmap)picUpperUndershirt.Image))); + ++textureCount; + } + if (picUpperShirt.Image != null) + { + layers.Add(AppearanceManager.TextureIndex.UpperShirt, + new AssetTexture(new ManagedImage((Bitmap)picUpperShirt.Image))); + ++textureCount; + } + if (picUpperJacket.Image != null) + { + layers.Add(AppearanceManager.TextureIndex.UpperJacket, + new AssetTexture(new ManagedImage((Bitmap)picUpperJacket.Image))); + ++textureCount; + } + + // Compute the upper body bake + Baker baker = new Baker( + _client, AppearanceManager.BakeType.UpperBody, textureCount, paramValues); + + foreach (KeyValuePair kvp in layers) + baker.AddTexture(kvp.Key, kvp.Value, false); + + if (baker.BakedTexture != null) + { + AssetTexture bakeAsset = baker.BakedTexture; + // Baked textures use the alpha layer for other purposes, so we need to not use it + bakeAsset.Image.Channels = ManagedImage.ImageChannels.Color; + picUpperBodyBake.Image = LoadTGAClass.LoadTGA(new MemoryStream(bakeAsset.Image.ExportTGA())); + } + else + { + MessageBox.Show("Failed to create the bake layer, unknown error"); + } + } + else if ((string)control.Tag == "Lower") + { + if (picLowerBodypaint.Image != null) + { + layers.Add(AppearanceManager.TextureIndex.LowerBodypaint, + new AssetTexture(new ManagedImage((Bitmap)picLowerBodypaint.Image))); + ++textureCount; + } + if (picLowerUnderpants.Image != null) + { + layers.Add(AppearanceManager.TextureIndex.LowerUnderpants, + new AssetTexture(new ManagedImage((Bitmap)picLowerUnderpants.Image))); + ++textureCount; + } + if (picLowerSocks.Image != null) + { + layers.Add(AppearanceManager.TextureIndex.LowerSocks, + new AssetTexture(new ManagedImage((Bitmap)picLowerSocks.Image))); + ++textureCount; + } + if (picLowerShoes.Image != null) + { + layers.Add(AppearanceManager.TextureIndex.LowerShoes, + new AssetTexture(new ManagedImage((Bitmap)picLowerShoes.Image))); + ++textureCount; + } + if (picLowerPants.Image != null) + { + layers.Add(AppearanceManager.TextureIndex.LowerPants, + new AssetTexture(new ManagedImage((Bitmap)picLowerPants.Image))); + ++textureCount; + } + + // Compute the lower body bake + Baker baker = new Baker( + _client, AppearanceManager.BakeType.LowerBody, textureCount, paramValues); + + foreach (KeyValuePair kvp in layers) + baker.AddTexture(kvp.Key, kvp.Value, false); + + if (baker.BakedTexture != null) + { + AssetTexture bakeAsset = baker.BakedTexture; + // Baked textures use the alpha layer for other purposes, so we need to not use it + bakeAsset.Image.Channels = ManagedImage.ImageChannels.Color; + picLowerBodyBake.Image = LoadTGAClass.LoadTGA(new MemoryStream(bakeAsset.Image.ExportTGA())); + } + else + { + MessageBox.Show("Failed to create the bake layer, unknown error"); + } + } + else if ((string)control.Tag == "Bake") + { + // Bake image has been set manually, no need to manually calculate a bake + // FIXME: + } + + #endregion Baking + } + + private Dictionary GetParamValues() + { + Dictionary paramValues = new Dictionary(VisualParams.Params.Count); + + foreach (KeyValuePair kvp in VisualParams.Params) + { + VisualParam vp = kvp.Value; + paramValues.Add(vp.ParamID, vp.DefaultValue); + } + + return paramValues; + } + + private static System.Drawing.Image ConvertToRGB(System.Drawing.Image image) + { + int width = image.Width; + int height = image.Height; + + Bitmap noAlpha = new Bitmap(width, height, System.Drawing.Imaging.PixelFormat.Format24bppRgb); + Graphics graphics = Graphics.FromImage(noAlpha); + graphics.DrawImage(image, 0, 0, width, height); + + return noAlpha; + } + + private static bool IsPowerOfTwo(uint n) + { + return (n & (n - 1)) == 0 && n != 0; + } + } +} diff --git a/Programs/AvatarPreview/frmAvatar.resx b/Programs/AvatarPreview/frmAvatar.resx new file mode 100644 index 00000000..c85db068 --- /dev/null +++ b/Programs/AvatarPreview/frmAvatar.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 96, 17 + + \ No newline at end of file diff --git a/bin/Prebuild.exe b/bin/Prebuild.exe index bbef8aedd7bcdbda5faa47db62e279009c5cce83..93f964b5db8fd88d6df72040b34a2eb2d5b277d4 100644 GIT binary patch literal 237568 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 r$d`&4AqEu9b*jF=yZg| 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 diff --git a/prebuild.xml b/prebuild.xml index 8dd126e1..326fab18 100644 --- a/prebuild.xml +++ b/prebuild.xml @@ -1,6 +1,6 @@ - - + + TRACE;DEBUG @@ -151,7 +151,35 @@ - + + + + ../../bin/ + + + + + ../../bin/ + + + + ../../bin/ + + + + + + + + + + + frmAvatarPreview.resx + + + + + ../../bin/ @@ -219,7 +247,7 @@ - + ../../bin/ @@ -240,16 +268,16 @@ - + - frmPrimPreview.resx + frmPrimWorkshop.resx - + ../../bin/ @@ -275,7 +303,7 @@ - + ../../bin/ @@ -368,7 +396,7 @@ - + ../../../bin/ @@ -394,7 +422,7 @@ - + ../../../bin/ @@ -419,7 +447,7 @@ - + ../../../bin/ @@ -444,7 +472,7 @@ - + ../../../bin/