First Commit of Joystick Tuning Code
parent
29b5496afd
commit
3aadcbc8e4
@ -0,0 +1,275 @@
|
||||
#region --- License ---
|
||||
/* Licensed under the MIT/X11 license.
|
||||
* Copyright (c) 2006-2008 the OpenTK Team.
|
||||
* This notice may not be removed from any source distribution.
|
||||
* See license.txt for licensing details.
|
||||
*/
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Windows.Forms;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
|
||||
using OpenTK;
|
||||
using OpenTK.Graphics;
|
||||
using OpenTK.Graphics.OpenGL;
|
||||
|
||||
using SCJMapper_V2.Shapes;
|
||||
using SCJMapper_V2.TextureLoaders;
|
||||
|
||||
namespace SCJMapper_V2
|
||||
{
|
||||
[Example("DDS Cube Map", ExampleCategory.OpenGL, "2.x", Documentation = "DDSCubeMap")]
|
||||
public class T13_GLSL_Earth: GameWindow
|
||||
{
|
||||
public T13_GLSL_Earth( )
|
||||
: base( 800, 800 )
|
||||
{
|
||||
}
|
||||
|
||||
#region internal Fields
|
||||
|
||||
// Shader
|
||||
int VertexShaderObject, FragmentShaderObject, ProgramObject;
|
||||
const string VertexShaderFilename = "Data/Shaders/CubeMap_VS.glsl";
|
||||
const string FragmentShaderFilename = "Data/Shaders/CubeMap_FS.glsl";
|
||||
|
||||
// Textures
|
||||
const TextureUnit TMU0_Unit = TextureUnit.Texture0;
|
||||
const int TMU0_UnitInteger = 0;
|
||||
const string TMU0_Filename = "Data/Textures/earth-cubemap.dds";
|
||||
uint TMU0_Handle;
|
||||
TextureTarget TMU0_Target;
|
||||
|
||||
// DL
|
||||
DrawableShape sphere;
|
||||
|
||||
// Camera
|
||||
Vector3 EyePos = new Vector3( 0.0f, 0.0f, 6.0f );
|
||||
Vector3 Trackball = Vector3.Zero;
|
||||
|
||||
#endregion internal Fields
|
||||
|
||||
/// <summary>Setup OpenGL and load resources here.</summary>
|
||||
/// <param name="e">Not used.</param>
|
||||
protected override void OnLoad(EventArgs e)
|
||||
{
|
||||
this.VSync = VSyncMode.Off;
|
||||
|
||||
// Check for necessary capabilities:
|
||||
string extensions = GL.GetString(StringName.Extensions);
|
||||
if (!GL.GetString(StringName.Extensions).Contains("GL_ARB_shading_language"))
|
||||
{
|
||||
throw new NotSupportedException(String.Format("This example requires OpenGL 2.0. Found {0}. Aborting.",
|
||||
GL.GetString(StringName.Version).Substring(0, 3)));
|
||||
}
|
||||
|
||||
if (!extensions.Contains("GL_ARB_texture_compression") ||
|
||||
!extensions.Contains("GL_EXT_texture_compression_s3tc"))
|
||||
{
|
||||
throw new NotSupportedException("This example requires support for texture compression. Aborting.");
|
||||
}
|
||||
|
||||
#region GL State
|
||||
|
||||
GL.ClearColor( 0f, 0f, 0f, 0f );
|
||||
|
||||
GL.Disable( EnableCap.Dither );
|
||||
|
||||
GL.Enable( EnableCap.CullFace );
|
||||
GL.FrontFace( FrontFaceDirection.Ccw );
|
||||
GL.PolygonMode( MaterialFace.Front, PolygonMode.Fill );
|
||||
// GL.PolygonMode( MaterialFace.Back, PolygonMode.Line );
|
||||
|
||||
#endregion GL State
|
||||
|
||||
#region Shaders
|
||||
|
||||
string LogInfo;
|
||||
|
||||
// Load&Compile Vertex Shader
|
||||
|
||||
using ( StreamReader sr = new StreamReader( VertexShaderFilename ) )
|
||||
{
|
||||
VertexShaderObject = GL.CreateShader( ShaderType.VertexShader );
|
||||
GL.ShaderSource( VertexShaderObject, sr.ReadToEnd( ) );
|
||||
GL.CompileShader( VertexShaderObject );
|
||||
}
|
||||
|
||||
GL.GetShaderInfoLog( VertexShaderObject, out LogInfo );
|
||||
if ( LogInfo.Length > 0 && !LogInfo.Contains( "hardware" ) )
|
||||
Trace.WriteLine( "Vertex Shader failed!\nLog:\n" + LogInfo );
|
||||
else
|
||||
Trace.WriteLine( "Vertex Shader compiled without complaint." );
|
||||
|
||||
// Load&Compile Fragment Shader
|
||||
|
||||
using ( StreamReader sr = new StreamReader( FragmentShaderFilename ) )
|
||||
{
|
||||
FragmentShaderObject = GL.CreateShader( ShaderType.FragmentShader );
|
||||
GL.ShaderSource( FragmentShaderObject, sr.ReadToEnd( ) );
|
||||
GL.CompileShader( FragmentShaderObject );
|
||||
}
|
||||
GL.GetShaderInfoLog( FragmentShaderObject, out LogInfo );
|
||||
|
||||
if ( LogInfo.Length > 0 && !LogInfo.Contains( "hardware" ) )
|
||||
Trace.WriteLine( "Fragment Shader failed!\nLog:\n" + LogInfo );
|
||||
else
|
||||
Trace.WriteLine( "Fragment Shader compiled without complaint." );
|
||||
|
||||
// Link the Shaders to a usable Program
|
||||
ProgramObject = GL.CreateProgram( );
|
||||
GL.AttachShader( ProgramObject, VertexShaderObject );
|
||||
GL.AttachShader( ProgramObject, FragmentShaderObject );
|
||||
|
||||
// link it all together
|
||||
GL.LinkProgram( ProgramObject );
|
||||
|
||||
// flag ShaderObjects for delete when not used anymore
|
||||
GL.DeleteShader( VertexShaderObject );
|
||||
GL.DeleteShader( FragmentShaderObject );
|
||||
|
||||
int[] temp = new int[1];
|
||||
GL.GetProgram( ProgramObject, ProgramParameter.LinkStatus, out temp[0] );
|
||||
Trace.WriteLine( "Linking Program (" + ProgramObject + ") " + ( ( temp[0] == 1 ) ? "succeeded." : "FAILED!" ) );
|
||||
if ( temp[0] != 1 )
|
||||
{
|
||||
GL.GetProgramInfoLog( ProgramObject, out LogInfo );
|
||||
Trace.WriteLine( "Program Log:\n" + LogInfo );
|
||||
}
|
||||
|
||||
GL.GetProgram( ProgramObject, ProgramParameter.ActiveAttributes, out temp[0] );
|
||||
Trace.WriteLine( "Program registered " + temp[0] + " Attributes. (Should be 4: Pos, UV, Normal, Tangent)" );
|
||||
|
||||
Trace.WriteLine( "Tangent attribute bind location: " + GL.GetAttribLocation( ProgramObject, "AttributeTangent" ) );
|
||||
|
||||
Trace.WriteLine( "End of Shader build. GL Error: " + GL.GetError( ) );
|
||||
|
||||
#endregion Shaders
|
||||
|
||||
#region Textures
|
||||
|
||||
TextureLoaderParameters.FlipImages = false;
|
||||
TextureLoaderParameters.MagnificationFilter = TextureMagFilter.Linear;
|
||||
TextureLoaderParameters.MinificationFilter = TextureMinFilter.Linear;
|
||||
TextureLoaderParameters.WrapModeS = TextureWrapMode.ClampToEdge;
|
||||
TextureLoaderParameters.WrapModeT = TextureWrapMode.ClampToEdge;
|
||||
TextureLoaderParameters.EnvMode = TextureEnvMode.Modulate;
|
||||
|
||||
ImageDDS.LoadFromDisk( TMU0_Filename, out TMU0_Handle, out TMU0_Target );
|
||||
Trace.WriteLine( "Loaded " + TMU0_Filename + " with handle " + TMU0_Handle + " as " + TMU0_Target );
|
||||
|
||||
#endregion Textures
|
||||
|
||||
Trace.WriteLine( "End of Texture Loading. GL Error: " + GL.GetError( ) );
|
||||
Trace.WriteLine( "");
|
||||
|
||||
sphere = new SlicedSphere(1.5f, Vector3d.Zero, SlicedSphere.eSubdivisions.Four, new SlicedSphere.eDir[] { SlicedSphere.eDir.All }, true);
|
||||
|
||||
}
|
||||
|
||||
protected override void OnUnload(EventArgs e)
|
||||
{
|
||||
sphere.Dispose();
|
||||
|
||||
GL.DeleteProgram( ProgramObject );
|
||||
GL.DeleteTextures( 1, ref TMU0_Handle );
|
||||
|
||||
base.OnUnload( e );
|
||||
}
|
||||
|
||||
/// <summary>Respond to resize events here.</summary>
|
||||
/// <param name="e">Contains information on the new GameWindow size.</param>
|
||||
/// <remarks>There is no need to call the base implementation.</remarks>
|
||||
protected override void OnResize( EventArgs e )
|
||||
{
|
||||
GL.Viewport( 0, 0, Width, Height );
|
||||
|
||||
GL.MatrixMode( MatrixMode.Projection );
|
||||
Matrix4 p = Matrix4.CreatePerspectiveFieldOfView(MathHelper.PiOver4, Width / (float)Height, 0.1f, 10.0f);
|
||||
GL.LoadMatrix(ref p);
|
||||
|
||||
GL.MatrixMode( MatrixMode.Modelview );
|
||||
GL.LoadIdentity( );
|
||||
|
||||
base.OnResize( e );
|
||||
}
|
||||
|
||||
/// <summary>Add your game logic here.</summary>
|
||||
/// <param name="e">Contains timing information.</param>
|
||||
/// <remarks>There is no need to call the base implementation.</remarks>
|
||||
protected override void OnUpdateFrame( FrameEventArgs e )
|
||||
{
|
||||
base.OnUpdateFrame( e );
|
||||
|
||||
if ( Keyboard[OpenTK.Input.Key.Escape] )
|
||||
this.Exit( );
|
||||
if ( Keyboard[OpenTK.Input.Key.Space] )
|
||||
Trace.WriteLine( "GL: " + GL.GetError( ) );
|
||||
|
||||
Trackball.X = Mouse.X;
|
||||
Trackball.Y = Mouse.Y;
|
||||
Trackball.Z = Mouse.Wheel * 0.5f;
|
||||
|
||||
}
|
||||
|
||||
/// <summary>Add your game rendering code here.</summary>
|
||||
/// <param name="e">Contains timing information.</param>
|
||||
/// <remarks>There is no need to call the base implementation.</remarks>
|
||||
protected override void OnRenderFrame(FrameEventArgs e)
|
||||
{
|
||||
this.Title = "FPS: " + (1 / e.Time).ToString("0.");
|
||||
|
||||
GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
|
||||
|
||||
GL.UseProgram(ProgramObject);
|
||||
|
||||
#region Textures
|
||||
|
||||
GL.ActiveTexture(TMU0_Unit);
|
||||
GL.BindTexture(TMU0_Target, TMU0_Handle);
|
||||
|
||||
#endregion Textures
|
||||
|
||||
#region Uniforms
|
||||
|
||||
GL.Uniform1(GL.GetUniformLocation(ProgramObject, "Earth"), TMU0_UnitInteger);
|
||||
|
||||
#endregion Uniforms
|
||||
|
||||
GL.PushMatrix();
|
||||
Matrix4 temp = Matrix4.LookAt(EyePos, Vector3.Zero, Vector3.UnitY);
|
||||
GL.MultMatrix(ref temp);
|
||||
|
||||
GL.Rotate(Trackball.X, Vector3.UnitY);
|
||||
GL.Rotate(Trackball.Y, Vector3.UnitX);
|
||||
|
||||
#region Draw
|
||||
|
||||
GL.Color3(1f, 1f, 1f);
|
||||
|
||||
sphere.Draw();
|
||||
|
||||
#endregion Draw
|
||||
|
||||
GL.PopMatrix();
|
||||
|
||||
this.SwapBuffers();
|
||||
}
|
||||
|
||||
/// <summary>Entry point</summary>
|
||||
[STAThread]
|
||||
public static void Main( )
|
||||
{
|
||||
using ( T13_GLSL_Earth example = new T13_GLSL_Earth( ) )
|
||||
{
|
||||
Utilities.SetWindowTitle(example);
|
||||
example.Run( 30.0, 0.0 );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,82 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace SCJMapper_V2.Shapes
|
||||
{
|
||||
public class Chunk
|
||||
{
|
||||
public VertexT2dN3dV3d[] Vertices;
|
||||
public uint[] Indices;
|
||||
|
||||
public uint VertexCount
|
||||
{
|
||||
get
|
||||
{
|
||||
return (uint)Vertices.Length;
|
||||
}
|
||||
}
|
||||
public uint IndexCount
|
||||
{
|
||||
get
|
||||
{
|
||||
return (uint)Indices.Length;
|
||||
}
|
||||
}
|
||||
|
||||
public Chunk( uint vertexcount, uint indexcount )
|
||||
{
|
||||
Vertices = new VertexT2dN3dV3d[vertexcount];
|
||||
Indices = new uint[indexcount];
|
||||
}
|
||||
|
||||
public Chunk( ref VertexT2dN3dV3d[] vbo, ref uint[] ibo )
|
||||
{
|
||||
Vertices = new VertexT2dN3dV3d[vbo.Length];
|
||||
for ( int i = 0; i < Vertices.Length; i++ )
|
||||
{
|
||||
Vertices[i] = vbo[i];
|
||||
}
|
||||
Indices = new uint[ibo.Length];
|
||||
for ( int i = 0; i < Indices.Length; i++ )
|
||||
{
|
||||
Indices[i] = ibo[i];
|
||||
}
|
||||
}
|
||||
|
||||
public static void GetArray( ref List<Chunk> c, out VertexT2dN3dV3d[] vbo, out uint[] ibo )
|
||||
{
|
||||
|
||||
uint VertexCounter = 0;
|
||||
uint IndexCounter = 0;
|
||||
|
||||
foreach ( Chunk ch in c )
|
||||
{
|
||||
VertexCounter += ch.VertexCount;
|
||||
IndexCounter += ch.IndexCount;
|
||||
}
|
||||
|
||||
vbo = new VertexT2dN3dV3d[VertexCounter];
|
||||
ibo = new uint[IndexCounter];
|
||||
|
||||
VertexCounter = 0;
|
||||
IndexCounter = 0;
|
||||
|
||||
foreach ( Chunk ch in c )
|
||||
{
|
||||
for ( int i = 0; i < ch.Vertices.Length; i++ )
|
||||
{
|
||||
vbo[VertexCounter + i] = ch.Vertices[i];
|
||||
}
|
||||
|
||||
for ( int i = 0; i < ch.Indices.Length; i++ )
|
||||
{
|
||||
ibo[IndexCounter + i] = ch.Indices[i] + VertexCounter;
|
||||
}
|
||||
|
||||
VertexCounter += (uint)ch.VertexCount;
|
||||
IndexCounter += (uint)ch.IndexCount;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,181 @@
|
||||
#region --- License ---
|
||||
/* Copyright (c) 2006, 2007 Stefanos Apostolopoulos
|
||||
* See license.txt for license info
|
||||
*/
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
|
||||
using OpenTK;
|
||||
using OpenTK.Graphics.OpenGL;
|
||||
|
||||
namespace SCJMapper_V2.Shapes
|
||||
{
|
||||
// Abstract base class for procedurally generated geometry
|
||||
//
|
||||
// All classes derived from it must produce Counter-Clockwise (CCW) primitives.
|
||||
// Derived classes must create a single VBO and IBO, without primitive restarts for strips.
|
||||
// Uses an double-precision all-possible-attributes VertexT2dN3dV3d Array internally.
|
||||
// Cannot directly use VBO, but has Get-methods to retrieve VBO-friendly data.
|
||||
// Can use a Display List to prevent repeated immediate mode draws.
|
||||
//
|
||||
|
||||
public abstract class DrawableShape: IDisposable
|
||||
{
|
||||
protected PrimitiveType PrimitiveMode;
|
||||
protected VertexT2dN3dV3d[] VertexArray;
|
||||
protected uint[] IndexArray;
|
||||
|
||||
public int GetTriangleCount
|
||||
{
|
||||
get
|
||||
{
|
||||
switch ( PrimitiveMode )
|
||||
{
|
||||
case PrimitiveType.Triangles:
|
||||
if ( IndexArray != null )
|
||||
{
|
||||
return IndexArray.Length / 3;
|
||||
} else
|
||||
{
|
||||
return VertexArray.Length / 3;
|
||||
}
|
||||
// break;
|
||||
default: throw new NotImplementedException("Unknown primitive type.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#region Display List
|
||||
|
||||
private bool UseDisplayList;
|
||||
private int DisplayListHandle = 0;
|
||||
|
||||
#endregion Display List
|
||||
|
||||
public DrawableShape( bool useDisplayList )
|
||||
{
|
||||
UseDisplayList = useDisplayList;
|
||||
PrimitiveMode = PrimitiveType.Triangles;
|
||||
VertexArray = null;
|
||||
IndexArray = null;
|
||||
}
|
||||
|
||||
#region Convert to VBO
|
||||
|
||||
public void GetArraysforVBO( out PrimitiveType primitives, out VertexT2dN3dV3d[] vertices, out uint[] indices )
|
||||
{
|
||||
primitives = PrimitiveMode;
|
||||
|
||||
vertices = new VertexT2dN3dV3d[VertexArray.Length];
|
||||
for (uint i = 0; i < VertexArray.Length; i++)
|
||||
{
|
||||
vertices[i].TexCoord = VertexArray[i].TexCoord;
|
||||
vertices[i].Normal = VertexArray[i].Normal;
|
||||
vertices[i].Position = VertexArray[i].Position;
|
||||
}
|
||||
|
||||
indices = IndexArray;
|
||||
}
|
||||
|
||||
public void GetArraysforVBO( out PrimitiveType primitives, out VertexT2fN3fV3f[] vertices, out uint[] indices )
|
||||
{
|
||||
primitives = PrimitiveMode;
|
||||
|
||||
vertices = new VertexT2fN3fV3f[VertexArray.Length];
|
||||
for (uint i = 0; i < VertexArray.Length; i++)
|
||||
{
|
||||
vertices[i].TexCoord = (Vector2)VertexArray[i].TexCoord;
|
||||
vertices[i].Normal = (Vector3)VertexArray[i].Normal;
|
||||
vertices[i].Position = (Vector3)VertexArray[i].Position;
|
||||
}
|
||||
|
||||
indices = IndexArray;
|
||||
}
|
||||
|
||||
public void GetArraysforVBO( out PrimitiveType primitives, out VertexT2hN3hV3h[] vertices, out uint[] indices )
|
||||
{
|
||||
primitives = PrimitiveMode;
|
||||
|
||||
vertices = new VertexT2hN3hV3h[VertexArray.Length];
|
||||
for (uint i = 0; i < VertexArray.Length; i++)
|
||||
{
|
||||
vertices[i].TexCoord = (Vector2h)VertexArray[i].TexCoord;
|
||||
vertices[i].Normal = (Vector3h)VertexArray[i].Normal;
|
||||
vertices[i].Position = (Vector3h)VertexArray[i].Position;
|
||||
}
|
||||
|
||||
indices = IndexArray;
|
||||
}
|
||||
|
||||
#endregion Convert to VBO
|
||||
|
||||
private void DrawImmediateMode()
|
||||
{
|
||||
GL.Begin( PrimitiveMode );
|
||||
{
|
||||
if ( IndexArray == null )
|
||||
foreach ( VertexT2dN3dV3d v in VertexArray )
|
||||
{
|
||||
GL.TexCoord2( v.TexCoord.X, v.TexCoord.Y );
|
||||
GL.Normal3( v.Normal.X, v.Normal.Y, v.Normal.Z );
|
||||
GL.Vertex3( v.Position.X, v.Position.Y, v.Position.Z );
|
||||
} else
|
||||
{
|
||||
for ( uint i = 0; i < IndexArray.Length; i++ )
|
||||
{
|
||||
uint index = IndexArray[i];
|
||||
GL.TexCoord2( VertexArray[index].TexCoord.X, VertexArray[index].TexCoord.Y );
|
||||
GL.Normal3( VertexArray[index].Normal.X, VertexArray[index].Normal.Y, VertexArray[index].Normal.Z );
|
||||
GL.Vertex3( VertexArray[index].Position.X, VertexArray[index].Position.Y, VertexArray[index].Position.Z );
|
||||
}
|
||||
}
|
||||
}
|
||||
GL.End();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Does not touch any state/matrices. Does call Begin/End and Vertex&Co.
|
||||
/// Creates and compiles a display list if not present yet. Requires an OpenGL context.
|
||||
/// </summary>
|
||||
public void Draw()
|
||||
{
|
||||
if ( !UseDisplayList )
|
||||
DrawImmediateMode();
|
||||
else
|
||||
if ( DisplayListHandle == 0 )
|
||||
{
|
||||
if ( VertexArray == null )
|
||||
throw new Exception("Cannot draw null Vertex Array.");
|
||||
DisplayListHandle = GL.GenLists( 1 );
|
||||
GL.NewList( DisplayListHandle, ListMode.CompileAndExecute );
|
||||
DrawImmediateMode();
|
||||
GL.EndList();
|
||||
} else
|
||||
GL.CallList( DisplayListHandle );
|
||||
}
|
||||
|
||||
#region IDisposable Members
|
||||
|
||||
/// <summary>
|
||||
/// Removes reference to VertexArray and IndexArray.
|
||||
/// Deletes the Display List, so it requires an OpenGL context.
|
||||
/// The instance is effectively destroyed.
|
||||
/// </summary>
|
||||
public void Dispose()
|
||||
{
|
||||
if ( VertexArray != null )
|
||||
VertexArray = null;
|
||||
if ( IndexArray != null )
|
||||
IndexArray = null;
|
||||
if ( DisplayListHandle != 0 )
|
||||
{
|
||||
GL.DeleteLists( DisplayListHandle, 1 );
|
||||
DisplayListHandle = 0;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
}
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,408 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAD4AAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANvc
|
||||
3yTb2+Ak29viJNvb4iTb2+Mk29rlJNvb5iTb3OYk29zmJNvd5yTb3uck293nJNvd5yTb3egk29vgJNvb
|
||||
3STb2+Ak29vhJNvb4STb2+Ak29vhJNvb4CTb298k29vgJNvb3yTb294k29vfJNvb3STb290k29veJNvb
|
||||
3STb298k29vhJNvb5CTb2+Yk29vmJNvb5CTb2+Ik29viJNvb4STb294k29vbJNvb2yTb29sk29vbJNvb
|
||||
2yTb29sk29vbJNvb3STb294k29vcJNvb3iTb294k29vfJNvb3yTb298k29vfJNvb3STb29sk29vbJNvb
|
||||
2yTb29sk29vbJNvb3CQHCDn6BQU/+gUFRvoFBE36BQlW+gUTYfoFHGj6BR1q+gUjbvoFKnX6BSp0+gUp
|
||||
cvoFKXP6BSh0+gUWVPoFBDD6BQU7+gUFQfoFBUn6BQVE+gUFR/oFBUP6BQU7+gUFP/oFBTz6BQU4+gUF
|
||||
NvoFBS36BQUv+gUFM/oFBTb6BQVB+gUFUvoFBWL6BQdx+gUGcfoFBVv6BQVO+gUFTPoFBUb6BQU1+gUF
|
||||
KPoFBRr6BQUQ+gUFDvoFBQj6BQUG+gUFDfoFBSH6BQUw+gUFK/oFBTP6BQU4+gUFOfoFBT36BQU++gUF
|
||||
NvoFBSX6BQUR+gUFCPoFBQX6BQUF+gUFBfoFBQb6AABE/wAASv8AAFH/AApZ/wAWZv8AI2//ACh2/wAn
|
||||
dv8AL33/ADWD/wA1gv8AMX7/ADN//wAwfP8AKHT/AANI/wAAP/8AAEf/AABR/wAATf8AAEr/AABM/wAA
|
||||
T/8AAE3/AABD/wAAQf8AAD7/AAA9/wAAOv8AADz/AABC/wAAUP8AAGX/AAB2/wAOhP8ACYD/AABj/wAA
|
||||
Vv8AAFH/AABM/wAAQv8AADP/AAAg/wAAD/8AAAb/AAAH/wAADP8AABP/AAAj/wAALP8AADH/AAA4/wAA
|
||||
P/8AAEL/AABE/wAAP/8AAB//AAAF/wAABP8AAAD/AAAA/wAAAP8AAAD/AAAA/wIDU/8AA1b/ABRh/wAk
|
||||
bv8AMHj/ADR9/wA1gf8ANYH/ADiF/wA/if8AQor/AD2G/wA+h/8AOoT/ADaA/wAcZv8AAEz/AABU/wAA
|
||||
Vv8AAFP/AABS/wAAVP8AAF3/AABZ/wAAT/8AAEr/AABK/wAAUP8AAEz/AABL/wAAVP8AAGX/AAB0/wAO
|
||||
g/8AIJL/ABiL/wADcf8AAF7/AABV/wAATv8AAEj/AAA5/wAAI/8AABH/AAAH/wAADP8AABX/AAAk/wAA
|
||||
Lv8AADb/AAA4/wAAOf8AADf/AAA5/wAAN/8AAC3/AAAM/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
Af8CC13/AA5f/wAhbP8ALXn/ADWA/wA5hP8AOob/AD6K/wBCjP8ASI//AEqS/wBFjf8AQIn/ADqD/wA3
|
||||
gP8AMXv/AAZX/wAAVv8AAFP/AABS/wAAVP8AAFf/AABc/wAAW/8AAFj/AABX/wAAW/8AAGL/AABd/wAA
|
||||
X/8AAmn/AAZ5/wAMgv8AHI7/AC2e/wAnl/8ACnv/AABl/wAAW/8AAFH/AABK/wAAPf8AACn/AAAd/wAA
|
||||
Ev8AABH/AAAY/wAAKv8AADf/AAA8/wAAOP8AAC7/AAAe/wAAFv8AABD/AAAI/wAAAv8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAH/Ahln/wAYaP8AHmz/AC55/wA2gv8AOIX/ADqG/wBBi/8AR5D/AEuS/wBM
|
||||
lP8ASpP/AEKL/wA6hP8AN4L/ADeB/wAaY/8AAEz/AABW/wAAUf8AAFT/AABa/wAAXf8AAFz/AABe/wAG
|
||||
bf8ABG7/AAZv/wAGbv8AB3P/ABaB/wAaiv8AH5L/AC2e/wBArf8AOan/AByM/wAHc/8AAWr/AABg/wAA
|
||||
Wf8AAFb/AABG/wAAL/8AACP/AAAn/wAAM/8AADX/AAA5/wAAOP8AADr/AAA2/wAAH/8AAA//AAAC/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAB/wIYZ/8AFmn/ABlo/wAjb/8AMHv/ADSB/wA8
|
||||
hv8ARI3/AEqT/wBNlf8ATZb/AEyT/wBEi/8APYb/ADuE/wA+hv8AM33/AAJJ/wAATv8AAFP/AABU/wAA
|
||||
XP8AAF3/AABj/wAAZ/8ADHX/AA95/wATfP8AGIH/ABuE/wAmlP8ALJz/ADGi/wBArv8AVL3/AFC5/wAy
|
||||
n/8AHIb/ABV//wAQev8AA2//AABn/wAAXv8AAEv/AABE/wAARf8AAEj/AAA//wAAPf8AADz/AABD/wAA
|
||||
Pv8AACf/AAAW/wAACv8AAAf/AAAQ/wAADP8AAAP/AAAA/wAAAP8AAAD/AAAA/wAAAf8CHGv/AB1r/wAh
|
||||
bf8AJ3D/ADF4/wAzfP8AOYD/AEKJ/wBJkv8AS5P/AE2U/wBNk/8ASY//AESM/wBGjP8ASI7/AESM/wAT
|
||||
W/8AAEj/AABS/wAAXf8AAGH/AABn/wAAb/8AAnL/AAt8/wAQfv8AIYn/ACyV/wA1m/8AO6T/AESt/wBM
|
||||
tf8AWL//AG3K/wBuyP8AULT/ADyd/wA3lv8ALpP/AByH/wAPe/8ACnX/AAlt/wAIZ/8ABGH/AAJb/wAB
|
||||
WP8AAFb/AABQ/wAARf8AADb/AAAn/wAAH/8AABf/AAAV/wAAG/8AAAv/AAAB/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAH/Ai13/wAod/8AKXf/AC54/wA1fP8AO4H/ADuC/wBFif8AUJX/AFWX/wBZmf8AXJr/AFyY/wBZ
|
||||
mP8AV5j/AFWY/wBRlv8AMHz/AABS/wAAXv8AAGf/AABt/wAAc/8ABXj/AA5+/wAUhf8AGoj/AC2V/wA7
|
||||
of8ARKj/AFK0/wBjwf8Ab8v/AHnT/wCR3P8Ak9z/AHrN/wBmuv8AWrH/AE2p/wBAov8AO5v/ADiX/wA1
|
||||
k/8ALYr/ACSA/wAVeP8ABnD/AAFi/wAAU/8AAEX/AAAw/wAAKv8AACf/AAAi/wAAGv8AABX/AAAE/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAB/wITQf8AEUD/ABRH/wAUTv8AGlX/ACJh/wAnav8AOHj/AFCK/wVj
|
||||
mf8QcKL/EnWn/wxzpv8Gbab/AGSi/wBhoP8AXqD/AFWZ/wARc/8ACXT/ABF7/wATgP8AFYH/AB2K/wAg
|
||||
jv8AI5H/ACeU/wA2nv8AQqb/AFWw/wBuxv8AUrv/ADKs/wBDs/8AcM//BJLb/wCD0/8AaMH/AHXF/wBw
|
||||
wf8Abb3/AGu7/wBkuP8AWbD/AEql/wA2lf8AIYH/AA1z/wABZf8AAFL/AABE/wAAM/8AACz/AAAm/wAA
|
||||
Jf8AACf/AAAv/wAAHf8AAAj/AAAA/wAAAP8AAAD/AAAA/wAAAf8BABP/AAAP/wAAF/8AACL/AAAt/wAA
|
||||
PP8ADE//AClm/wBEfP8BWIz/BGOW/wRlmv8CWpf/AU2R/wBHk/8APY//AEaV/wBUnf8AUJz/AFWh/wBi
|
||||
q/8AZq//AF6s/wBarP8AWK3/AFCq/wBQq/8AUq//AF60/wBww/8AQ63/ABaM/wEnmf8AP6r/Ale8/xOG
|
||||
0v8KbsH/B2q1/wKZ0/8AoNr/AJrY/wCO0/8AgMr/AGq//wBSrv8APZz/ACqK/wAXeP8ABWf/AABZ/wAA
|
||||
Tf8AAD7/AAA1/wAALf8AACn/AAAf/wAAG/8AABD/AAAE/wAAAP8AAAD/AAAA/wAAAP8AAAH/AQIH/wAA
|
||||
B/8AAAz/AAAT/wAAHv8AATf/ABJR/wAmYf8AN3L/ADt4/wA1d/8AMHf/ADF6/wAtef8AMoD/ADaG/wBB
|
||||
k/8ATJv/AF6n/wBys/8CicP/CpfO/w2Z0P8Jlc7/BZHN/wKNzf8Aicv/AIvM/wCOz/8AUKf/ADWS/wBi
|
||||
tP8Hh87/AIjU/zW75/+Q7vv/auH3/1bZ9f9Kz/D/Ncft/xm36P8Fotz/AIrR/wB1xf8AXrb/AEyn/wA7
|
||||
mf8AJ4j/ABZ3/wADa/8AAF3/AABQ/wAAQP8AAC//AAAj/wAAFP8AAA7/AAAF/wAADP8AABj/AAAK/wAA
|
||||
AP8AAAD/AAAB/wICHP8AABz/AAAp/wABM/8ACj7/ABhS/wAgWv8AJGH/ACZn/wAhZP8AIWP/ACtt/wA7
|
||||
ff8AQ4X/AFCP/wBbmv8AWZz/AFuf/wBco/8AVKL/AGWu/wN5u/8Ih8T/CpTL/w+e0/8Podb/CaDW/w+l
|
||||
2/8Bcrv/AFWh/wBwt/8Ag8j/AJrZ/wKx5/9S2fT/5v7//8D1/v+g7Pv/geT5/2DX8/87xez/GLLj/wKg
|
||||
2v8AjdL/AHzE/wBsuf8AW67/AEqf/wA5kv8AJYP/ABZz/wASbv8AClz/AAVG/wACOf8AASX/AAAQ/wAA
|
||||
F/8AACT/AAAe/wAABf8AAAD/AAAA/wAAAf8BAiP/AAAo/wAAOv8AC0n/ABxZ/wAqZP8ALmf/ACNj/wAd
|
||||
Yf8AJmX/ADFt/wA/ev8ATIj/AE2O/wBRkv8AYJ7/AnGr/wd7s/8MgLn/D4O9/wyFv/8Dg7//BonD/xmZ
|
||||
zv8jpNb/KKnZ/yWs2/8Fi8v/BHm6/wuUy/8Qo9f/Hq3e/xm45/820/T/w/T8///////p/v7/sO/8/37g
|
||||
9v9X0PD/Nb/o/xuv4f8En9j/AI/O/wB7wv8Aa7j/AF+w/wBVpv8ASZv/ADuR/wAxiP8AJnz/ABtx/wAQ
|
||||
Zf8AB1f/AARN/wAAP/8AAkn/AAFC/wAALP8AABP/AAAC/wAAAf8AAAP/AQIZ/wAAKv8ABEL/ABtX/wAo
|
||||
Y/8ALmf/AChh/wAeWv8AE1P/ABFV/wATWv8AFWH/ABpn/wAca/8AIXH/ADCA/wBNl/8BaKr/Bn65/xaR
|
||||
xf8hmsz/HJvO/xyczv81rNj/R7je/1fB4/8tr9v/IaLQ/0G43f9BwOX/YdHu/4zo+f9x5fj/uvX9////
|
||||
////////9v///7vy/P+C4Pb/Vc3u/zK85f8Tqdz/BZTS/wGGxv8AdL7/AGW0/wBdrv8ATqL/AESY/wA+
|
||||
j/8ANoj/AC5+/wAldP8AGmn/AAxd/wAEVP8AAVL/AABM/wAAQP8AADP/AAAi/wAADP8AAAb/AgIM/wEB
|
||||
Cv8AAB3/AAQ9/wAMS/8AFlL/ABlT/wASTP8ADkb/AA9J/wAOTf8ABkf/AAA7/wAARP8ABlj/ABhs/wAp
|
||||
e/8APov/AFCb/wBfp/8AcbL/BoO9/xaSx/8uodD/SrHa/2PA4v9Etd7/PK/X/1m93/9vyuf/Ycjo/4XZ
|
||||
8f9g1PH/feD2//b9/////////////+7+///B9P3/kOX5/2nW8v9Ox+v/Lrbk/xOm3P8Jntb/AI3N/wB6
|
||||
v/8AbLX/AFWk/wBHmP8AOo7/ACyC/wAgdf8AFmr/AA5g/wAJVv8AA0j/AANK/wABRP8AADn/AAAx/wAA
|
||||
K/8AACP/AAAZ/wICGf8BAB//AAA1/wAUU/8AHlv/AB9c/wAYVv8ABUX/AAE+/wABPv8AADb/AAAo/wAD
|
||||
MP8ABUv/AApf/wAOZv8AEGj/ABxz/wAuhP8AQpL/AFSd/wBqq/8Lgrn/NJvJ/0+s1f8+p9P/QqfQ/3TC
|
||||
4P+Ayub/gc7p/3/M5/990u3/XMrr/7zs+P/9////+v////T////Y+f7/sO/8/4ji9/9m1PL/SMXr/yay
|
||||
4v8IoNf/ApXS/wCIy/8AfML/AG+5/wBeqP8AVJ7/AEuW/wBAif8ANHz/ACZv/wAbZf8AFlr/AAtH/wAH
|
||||
O/8AAy//AAEn/wAAHv8AACD/AAAp/wAAMP8CAzX/Aixn/wAybP8AQHf/AEl//wBIgf8AN3P/ACFe/wAb
|
||||
WP8AE1X/AAxP/wANUf8AEFz/AA5g/wAKX/8AC2H/ABxw/wAyhf8APo//AEqW/wBgov8OerL/LJDA/zCT
|
||||
xv8pksP/UabP/3/B3/+Ozef/gszn/3TF4/+Z1uz/e87r/5TZ8P/p/P7/8v///+/////c+v7/wvP9/6Ho
|
||||
+P932fP/Scbr/y+45f8Uq93/AJrU/wCJyv8AecD/AGu0/wBZpv8ATJj/AEWQ/wBAjP8AOIP/ADF5/wAs
|
||||
cP8AKG3/ACRn/wAaYP8ADU//AAM//wABOP8AAjP/AAU7/wAIPf8AAi7/AQMe/wJYkP8AX5T/AGaX/wBr
|
||||
nf8Ab6H/AGue/wBjlv8DZ5f/C2uc/wFPjP8ANnn/ACZv/wAfa/8AIW//ACNw/wAsdP8AO4D/AEaJ/wBa
|
||||
mP8Jcaj/JYW3/zeWxP85k8L/Z6/P/4DB3/9qutz/OaHO/yyZyf+Ax+L/i9Tr/1jA5P9JvOT/WsHn/6fh
|
||||
8v+m4PT/xvP8/7rw/f+T4fX/Zs3u/ze35P8TpNn/AJXQ/wCMzP8Ahcb/AH3B/wBos/8AVaL/AEaT/wA3
|
||||
hP8ALnn/ACVv/wAgZv8AHGD/ACNm/wAhZv8AF1z/AApJ/wAEPv8AAz3/AANC/wACQ/8AA0D/AAI+/wIE
|
||||
Nv8CVov/AFuP/wBhlv8AYZj/AGGY/wBil/8FaJr/HHqp/xlonP8CSon/AEqI/wBSj/8AWJP/AFuV/wBa
|
||||
k/8AVo7/AFqR/wBHgf8AMGv/AlOI/x56qf9Mm8L/dLPT/4TC3f9Op87/EHiy/wBZnv8AXaD/F4i//xuM
|
||||
xf8QgsL/AHG7/wBgt/8Aa7z/AG/B/ziZ0v+b3PL/jN/2/1HB5/8jqtz/CprS/wCBxP8Ab7n/AGaw/wBm
|
||||
r/8AXav/AFWi/wBKl/8AOIX/ACly/wAeZv8AFFv/AA1S/wAPU/8ADVL/AAVH/wACQP8AATz/AAI6/wAC
|
||||
Of8AADT/AAAw/wAAMv8CAzP/AluP/wBjkv8AbJr/AGyd/wBnmv8BYJT/GmmW/y5/p/8ocpr/JWiS/x5g
|
||||
jv8XXYv/EF2L/wdcjP8GXoz/CGqV/wBEcv8ADDf/AClc/xpsmP9DkLb/cK/O/3O31P8/nMf/BVub/wAv
|
||||
eP8AR4z/Bmqp/wBNmf8ARJP/ADuR/wAtif8AN5b/AE+o/wBetP8AW7L/E2qz/1as1f9Vv+T/KKjY/wiT
|
||||
zf8Aer7/AFyp/wBHlf8AQI7/ADyM/wA+i/8APIf/ADV//wArdP8AHmb/ABFY/wAITP8ABkf/AApK/wAL
|
||||
Sv8ACEX/AAI//wABNv8AAC7/AAAr/wAAKf8AACv/AgMu/wJck/8AZ5j/AHGd/wByn/8Abp//AGea/w5h
|
||||
lf8cZpX/JWqS/zZ6mv9Ii6P/V5mp/2Kjr/9hoq3/hbK3/2+arf8AABD/ABRA/wFBb/8wf6H/Wp29/1yl
|
||||
xv8lgrL/AEOC/wAVXP8AIGb/AC52/wpgov8BLn7/ABZp/wAIYf8AGnb/ADGF/wBYp/8AZrL/AGCy/wBF
|
||||
mf8AQ5D/Qp/L/ziw2v8OlMv/AHy7/wBhp/8ASpP/ADOA/wAjcv8AGmb/ABpj/wAeZv8AHmP/ABpc/wAT
|
||||
Vv8AC07/AAhL/wALTv8ACEj/AAlF/wAGQ/8ABD3/AAAw/wAAKP8AACL/AAAi/wIDKf8CWJL/AGeb/wBv
|
||||
nv8AdKP/AXGi/w5qnP8acKD/G26f/xZfkv8PToP/DEp+/wxNf/8XXoj/PICa/4a1v/87U2P/AAAJ/wAZ
|
||||
Rf8HUHj/MXqf/y2Bp/8HWo3/ACNh/wABPP8AAz3/ABVW/wAsdv8AE1D/AAlB/wAAN/8AAEb/AAZg/wAa
|
||||
cP8APY//Alun/wFVpv8AMYX/BDB6/0ijy/83rNj/Do7G/wB1tP8AZKf/AFGZ/wA9if8AJHP/ABJe/wAG
|
||||
Uf8AAkX/AAZH/wALSf8ACkf/AAtL/wAPVf8AD1X/AAVJ/wAGR/8AB0X/AAI9/wAANv8AACv/AAAg/wAA
|
||||
HP8CAx//AVeQ/whpm/8ui7T/M4+4/yB9qv8aapz/GWeY/xhqmf8XZpX/FVuN/xZakf8SVI3/CU2G/wpU
|
||||
iv8LVIf/AAQN/wAAB/8AHEX/DFt//xRpkP8BQXX/ABFE/wAAGf8AABv/AAAO/wAJL/8ACUD/AAAV/wAA
|
||||
Cv8AABb/AAAo/wAAPP8ABFH/ABJt/wAjfv8ANoz/AAth/wIITf9JnMP/RbLd/yKbzf8LicL/A3u4/wBt
|
||||
r/8AX6j/AEiW/wA9if8AI3D/ABJY/wAJTP8AB0f/AAZH/wAFR/8ACk//AApS/wAFTf8ABEn/AAJE/wAC
|
||||
Q/8AADz/AAAu/wAAIv8AABv/AgMd/wVTj/8cbJz/VqLG/ziNuP8ieKP/FWWU/xNhk/8VY5L/FF6M/xBQ
|
||||
gP8QS37/E1OJ/xRTiP8QVIb/BEZ+/wAACf8AAA//AB9L/wFNd/8BSHX/ABxR/wABKf8AAAH/AAAA/wAA
|
||||
AP8AAAr/AAAC/wAAAP8AAAD/AAAF/wAGMv8AATf/AABF/wABV/8AEmv/ABZw/wAAQv8ZMGX/UbLa/0Kt
|
||||
2P8wptP/HpzP/wuQyP8AgcD/AG6v/wBgp/8AWqH/AFOb/wBGjf8AMnz/ACl2/wATXP8ACVH/AAtT/wAQ
|
||||
Wf8AGmD/ABhf/wARWP8ADFH/AABA/wAAOP8AADX/AAAv/wICL/8HUIr/FGCU/zqNtv8ziLb/Kn2m/xxy
|
||||
nf8TYZD/FV6I/xVhjP8VXYz/EUx//w9Fef8IPnD/AjZg/wAWKv8AAAb/AAEa/wATQf8AGkn/ABM//wAm
|
||||
U/8AF0f/AAAD/wAAAP8AAAP/AAAC/wAAAP8AAAD/AAAA/wAAB/8AAxb/AAEX/wAALf8AAED/AAJX/wAA
|
||||
VP8IFFj/O5C8/z6o0/8zo8//HpbI/w2Oxf8Ci8T/AIC+/wBxr/8AaKr/AGut/wBprP8AYKf/AGCm/wBW
|
||||
nv8AKnX/ABVe/wAUYP8AGWL/ACRp/wAqcv8AHGT/AAtQ/wAGS/8ADlP/AAxQ/wAITf8CC0//AkV+/whG
|
||||
eP8aaZX/KoCs/yp8pP8oeqD/F2WO/xFSef8SVnz/F2CH/xdii/8OWYX/AS9R/wAFDf8AAAD/AAAA/wAA
|
||||
Bv8AAA7/Aw8v/wI5Yv8AKVr/AAQr/wAAA/8AAAL/AAEG/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAX/AAgz/wMGVv8UMHj/KYKz/x+Nuv8Nfa//BXet/wBzq/8AdK3/AH64/wB0rf8AZKL/AGCi/wBu
|
||||
rv8AcK//AGus/wBmp/8AX6D/AFab/wBIjv8ARY3/AC12/wAtcv8AIGb/ABJX/wAKSf8ABUP/AAxM/wAJ
|
||||
S/8ACU3/AhNV/wJKif8AOW3/BUpz/xppk/8gc53/InKZ/xttkv8UWYD/EUx0/xFTd/8LV3v/Ai5F/wAB
|
||||
A/8AAAD/AAAA/wAAAP8AAAD/BRIg/yttkf8CKVv/AAAg/wAACP8AAAD/AAcO/wAECv8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAK/wADMv8GM3X/LpfC/y2YxP8Sfq7/AHGk/wBsov8AbqX/AG6m/wBp
|
||||
pP8AZZ//AGGf/wBamv8AVZP/AFSO/wBSjv8AU5T/AE6P/wBMjf8AV5j/AEiJ/wA5ff8AMnP/ACNk/wAY
|
||||
WP8ADEn/AAQ7/wACNv8ABDL/AAQp/wIFJv8CWJn/ADp2/wA6af8QU3z/F2CL/xVdh/8WYIT/F2SI/xFa
|
||||
g/8DOVn/AA0X/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAUJ/x5kff9HncD/GkRz/wAAAP8AAAD/AAAA/wIS
|
||||
IP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAf8AAAD/AAAC/wAPNf8AIF//KoO0/zqjz/8njLz/DXir/wBr
|
||||
nv8AZpv/AGmh/wBrpf8AaaP/AGOc/wBdmf8AW5X/AFeQ/wBVjv8AVo//AFiW/wBbm/8AW5r/AFWW/wBQ
|
||||
jv8AR4L/ADV3/wAlaf8AFlb/AAtA/wAGMP8ABDD/AAIv/wAAKv8CAi3/Aj96/wAuZf8AJ1f/BDhi/w9M
|
||||
df8RT3j/Dkty/w9UeP8ENU7/AAQI/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAB/wcNEf8OLDr/L3mZ/zuI
|
||||
ov8eUG3/Bhov/wIJEP8CERv/AAML/wAAAP8AAAD/AAAA/wAAAP8AAAX/AQkP/wIcNf8VSHj/NI27/z2g
|
||||
zP8okcL/FICx/wRuov8AZpn/AGSY/wBnnf8AaqP/AGym/wBnn/8AZJv/AGOa/wBimP8BXpb/AVyW/wBa
|
||||
lv8AV5P/AFKM/wBOh/8ATIb/AEiD/wA/ff8ANHT/ACtn/wAhXP8AGFj/AAxS/wACSv8AADz/AgMx/wIi
|
||||
WP8AHE//AB9O/wAmVv8BOmT/Bj1o/wQsV/8AFCX/AAAA/wAAAP8AAAD/AAMJ/wABCP8GAgH/BgoL/wAD
|
||||
CP8KJS3/ByU3/xYzSf8waoH/LnOW/0aMrv9Nian/OWuI/yJPbv8TLUL/Chgm/wkZIv8hQVb/O3CO/0aL
|
||||
r/8+irH/P5O9/zWTvv8ki7v/GYK2/whwo/8AXpL/AFWK/wBPhv8AU4r/AFiR/wFYk/8AUo7/AE6I/wBN
|
||||
h/8ATYn/AE+M/wBUjf8AVpL/AFaS/wBWjP8AVov/AFeM/wBTif8ASIH/ADt0/wApZf8AGFX/AA1E/wAE
|
||||
NP8AACf/AAAa/wEBEv8CHlX/ABpR/wAeU/8AH1L/AB9I/wAaPv8ABhT/AAAA/wAAAP8DCxP/ABkv/wBE
|
||||
b/8AQHL/Ay5X/wMLGP8AAAD/AAAA/wALFf8TRWP/JWqM/y54mf82fJ3/OH2c/z2Bof8+g6b/PYWp/zuB
|
||||
p/87g6f/RpC1/0GMs/8ygqn/J3un/xpyo/8QbaP/CW2k/wVnoP8BU4z/AER7/wBCd/8AQXn/AEaB/wBR
|
||||
iv8AWI7/AFiP/wBVjf8AU4v/AFOL/wBOiP8ASoX/AEmG/wBCgP8AN3P/AC9q/wAmX/8AHlX/ABNH/wAK
|
||||
Pv8ABC//AAEY/wAABP8AAAD/AAAA/wAAAP8AAAD/AhlY/wAVT/8AEUL/AAg2/wACFv8AAAP/AAAA/wAA
|
||||
AP8AAQH/CDha/wA8cf8APWT/ADJN/wAXIf8AAAD/AAMJ/wAZLv8ANlr/Bkxv/wtFaf8HPmb/BkJp/wNB
|
||||
Z/8ERmz/B091/wxagf8WZYr/G2qP/xhskf8WbJX/D2qW/wdpl/8DZZn/AGGW/wBgmf8AWpf/AEeB/wA5
|
||||
b/8ANGr/AC9o/wAuav8AL27/ACxq/wAmZP8AIF3/ABlW/wATUP8ADUX/AAhE/wAFRf8AA0X/AAA7/wAA
|
||||
Mv8AACX/AAAd/wAAGf8AABv/AAAR/wAAAf8AAAD/AAAA/wAAAP8AAAD/AAAB/wIZYf8ACEf/AAEx/wAB
|
||||
Nv8AACb/AAAM/wAAAP8ACSj/AAs6/wAIGf8AECn/AAYJ/wAAAP8AAAL/AA4k/wAiRP8ALlP/AC1R/wAr
|
||||
Tf8AHz//ACBA/wAjRf8AJkf/ACtK/wAvUv8BNFn/AjRb/wIxXP8BL1//ASxg/wAqY/8AJWL/AB5b/wAY
|
||||
W/8AFmX/ABFk/wAHRf8AAi//AAEn/wAALP8AAC//AAAz/wAANP8AADH/AAAu/wAAJ/8AACP/AAAe/wAA
|
||||
Hv8AACD/AAAe/wAAGP8AABb/AAAU/wAADP8AAAb/AAAC/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
Af8CJ3X/AA5c/wAGTP8ADlb/AApS/wAAHv8AAAD/AAYQ/wAJJf8AAAD/AAAA/wAABf8ACSb/ABVD/wAe
|
||||
SP8AIUb/ACNK/wAkTP8AHT//AAAG/wAAAv8AAAL/AAAC/wAAAf8AAAT/AAAK/wAADv8AABP/AAAb/wAA
|
||||
If8AACf/AAAl/wAAJ/8AADH/AABG/wAASP8AACv/AAAX/wAAFv8AABz/AAAh/wAAJv8AACj/AAAl/wAA
|
||||
If8AAB3/AAAa/wAAGv8AABr/AAAX/wAAD/8AAAf/AAAB/wAABP8AAAL/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAH/AiJy/wAZa/8AF2f/ABdo/wAGOP8AAAD/AAED/wADGP8AAAD/AAAH/wAI
|
||||
Kv8AE0n/ABxT/wAeUP8AHk//ACBN/wAiTf8AI1H/ABYz/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAv8AAAn/AAAN/wAADP8AABH/AAAf/wAANv8AADn/AAAg/wAAE/8AABf/AAAc/wAA
|
||||
HP8AAB7/AAAf/wAAHv8AABz/AAAa/wAAHf8AAB7/AAAf/wAAIv8AAB7/AAAV/wAAC/8AAAb/AAAB/wAA
|
||||
Af8AAAX/AAAC/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAB/wIcbv8AFmn/ABFf/wATYv8DD0n/ChIe/wAB
|
||||
AP8AEEH/AAtD/wAVUf8AGlz/ABpX/wAcUv8AH1T/AB9W/wAiV/8AI1X/ACFV/wALIP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAC/wAAEf8AACn/AAAu/wAA
|
||||
Gf8AAA//AAAW/wAAIP8AAB//AAAa/wAAGv8AAB3/AAAb/wAAHf8AACr/AAAs/wAALP8AAC//AAAk/wAA
|
||||
Hv8AABj/AAAN/wAAB/8AAAT/AAAE/wAAAv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAf8CEWf/AAlf/wAI
|
||||
WP8AC1j/AxVc/wgZXP8AACL/AAYl/wAVXv8AG13/ABdY/wAVVP8AF1H/ABtT/wAdVP8AHlT/ABxQ/wAX
|
||||
Sf8AAgv/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAv/AAAf/wAAI/8AAA//AAAG/wAAD/8AABn/AAAh/wAAGf8AABH/AAAQ/wAAEf8AAB7/AAAt/wAA
|
||||
Lv8AADH/AAAn/wAAG/8AABT/AAAQ/wAAC/8AAAz/AAAJ/wAAB/8AAAH/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAH/AgRc/wAAU/8AAFD/AABN/wACTf8AAEX/AABC/wADQv8ADlL/ABFS/wAPUP8ADlD/ABFM/wAW
|
||||
Tv8AF0z/ABZK/wAVSf8ACzH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAF/wAAGP8AABn/AAAD/wAAAP8AAAX/AAAN/wAAGP8AAA3/AAAD/wAA
|
||||
AP8AAAr/AAAb/wAAFP8AABf/AAAk/wAAGP8AAAz/AAAJ/wAAB/8AAAb/AAAL/wAACP8AAAb/AAAD/wAA
|
||||
Af8AAAD/AAAA/wAAAP8AAAD/AAAB/wAAQ/8AADv/AAAy/wAALv8AACr/AAAl/wAAKv8AADj/AABA/wAA
|
||||
QP8AAEH/AABA/wAEQP8ABD//AAM7/wACOv8AAjX/AAAM/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAb/AAAG/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAv8AAAD/AAAA/wAACf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
Af8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8fIUnlHR9D5R0fPOUdHznlHR855R0f
|
||||
PuUdH0blHR9M5R0fVOUdH1XlHR9S5R0fUuUeIVXlHiJU5R4gTuUeH0zlHR495RoaHOUaGhvlGhob5Roa
|
||||
G+UaGhvlGhob5RoaG+UaGhvlGhob5RoaG+UaGhvlGhsc5RobHOUaGxzlGhsc5RobHOUaGxzlGhse5Rob
|
||||
IeUaGxzlGhsb5RobHOUaGxvlGhsb5RobG+UaGxzlGhsc5RobG+UaGxvlGhob5R0hJuUbHB7lGhsb5Rob
|
||||
HOUaGxzlGhsc5RobHOUaGx3lGhsc5RobHeUaGxzlGhsc5RobHOUaGxzlGhob5RoaG+UaGhvl9fb3DPX2
|
||||
9wz19vcM9fb3DPX29wz19vgM9fb4DPX2+Az19vgM9fb4DPX2+Az19vgM9fb4DPX2+Az19vcM9fb3DPX1
|
||||
9Qzz8/MM8/PzDPPz8wzz8/MM8/P0DPPz9Azz8/QM8/P0DPPz9Azz8/QM8/P0DPPz9Azz8/QM8/P0DPPz
|
||||
9Azz8/QM8/P0DPP09Azz9PQM8/P0DPPz9Azz8/QM8/P0DPPz9Azz8/QM8/P0DPPz9Azz8/QM8/T0DPPz
|
||||
9Az19/gM8/T1DPPz9Azz8/QM8/P0DPPz9Azz9PQM8/T0DPPz9Azz8/QM8/P0DPPz9Azz8/QM8/P0DPPz
|
||||
9Azz8/QM8/PzDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAA////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAP//////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////////////////////////8=
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
@ -0,0 +1,50 @@
|
||||
#region --- License ---
|
||||
/* Licensed under the MIT/X11 license.
|
||||
* Copyright (c) 2006-2008 the OpenTK Team.
|
||||
* This notice may not be removed from any source distribution.
|
||||
* See license.txt for licensing details.
|
||||
*/
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
|
||||
using OpenTK.Graphics.OpenGL;
|
||||
|
||||
namespace SCJMapper_V2.TextureLoaders
|
||||
{
|
||||
|
||||
/// <summary>The parameters in this class have only effect on the following Texture loads.</summary>
|
||||
public static class TextureLoaderParameters
|
||||
{
|
||||
/// <summary>(Debug Aid, should be set to false) If set to false only Errors will be printed. If set to true, debug information (Warnings and Queries) will be printed in addition to Errors.</summary>
|
||||
public static bool Verbose = false;
|
||||
|
||||
/// <summary>Always-valid fallback parameter for GL.BindTexture (Default: 0). This number will be returned if loading the Texture failed. You can set this to a checkerboard texture or similar, which you have already loaded.</summary>
|
||||
public static uint OpenGLDefaultTexture = 0;
|
||||
|
||||
/// <summary>Compressed formats must have a border of 0, so this is constant.</summary>
|
||||
public const int Border = 0;
|
||||
|
||||
/// <summary>false==DirectX TexCoords, true==OpenGL TexCoords (Default: true)</summary>
|
||||
public static bool FlipImages = true;
|
||||
|
||||
/// <summary>When enabled, will use Glu to create MipMaps for images loaded with GDI+ (Default: false)</summary>
|
||||
public static bool BuildMipmapsForUncompressed = false;
|
||||
|
||||
/// <summary>Selects the Magnification filter for following Textures to be loaded. (Default: Nearest)</summary>
|
||||
public static TextureMagFilter MagnificationFilter = TextureMagFilter.Nearest;
|
||||
|
||||
/// <summary>Selects the Minification filter for following Textures to be loaded. (Default: Nearest)</summary>
|
||||
public static TextureMinFilter MinificationFilter = TextureMinFilter.Nearest;
|
||||
|
||||
/// <summary>Selects the S Wrapping for following Textures to be loaded. (Default: Repeat)</summary>
|
||||
public static TextureWrapMode WrapModeS = TextureWrapMode.Repeat;
|
||||
|
||||
/// <summary>Selects the T Wrapping for following Textures to be loaded. (Default: Repeat)</summary>
|
||||
public static TextureWrapMode WrapModeT = TextureWrapMode.Repeat;
|
||||
|
||||
/// <summary>Selects the Texture Environment Mode for the following Textures to be loaded. Default: Modulate)</summary>
|
||||
public static TextureEnvMode EnvMode = TextureEnvMode.Modulate;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,196 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
using OpenTK;
|
||||
|
||||
namespace SCJMapper_V2.Shapes
|
||||
{
|
||||
public sealed class SlicedSphere: DrawableShape
|
||||
{
|
||||
public enum eSubdivisions
|
||||
{
|
||||
Zero = 0,
|
||||
One = 1,
|
||||
Two = 2,
|
||||
Three = 3,
|
||||
Four = 4,
|
||||
Five=5,
|
||||
Six=6,
|
||||
Seven=7,
|
||||
Eight=8,
|
||||
}
|
||||
|
||||
public enum eDir
|
||||
{
|
||||
All,
|
||||
FrontTopRight,
|
||||
FrontBottomRight,
|
||||
FrontBottomLeft,
|
||||
FrontTopLeft,
|
||||
BackTopRight,
|
||||
BackBottomRight,
|
||||
BackBottomLeft,
|
||||
BackTopLeft,
|
||||
|
||||
}
|
||||
|
||||
public SlicedSphere( double radius, Vector3d offset, eSubdivisions subdivs, eDir[] sides, bool useDL )
|
||||
: base( useDL )
|
||||
{
|
||||
double Diameter = radius;
|
||||
|
||||
PrimitiveMode = OpenTK.Graphics.OpenGL.PrimitiveType.Triangles;
|
||||
|
||||
if ( sides[0] == eDir.All )
|
||||
{
|
||||
sides = new eDir[] { eDir.FrontTopRight,
|
||||
eDir.FrontBottomRight,
|
||||
eDir.FrontBottomLeft,
|
||||
eDir.FrontTopLeft,
|
||||
eDir.BackTopRight,
|
||||
eDir.BackBottomRight,
|
||||
eDir.BackBottomLeft,
|
||||
eDir.BackTopLeft,};
|
||||
}
|
||||
|
||||
VertexArray = new VertexT2dN3dV3d[sides.Length * 3];
|
||||
IndexArray = new uint[sides.Length * 3];
|
||||
|
||||
uint counter = 0;
|
||||
foreach ( eDir s in sides )
|
||||
{
|
||||
GetDefaultVertices( s, Diameter, out VertexArray[counter + 0], out VertexArray[counter + 1], out VertexArray[counter + 2] );
|
||||
IndexArray[counter + 0] = counter + 0;
|
||||
IndexArray[counter + 1] = counter + 1;
|
||||
IndexArray[counter + 2] = counter + 2;
|
||||
counter += 3;
|
||||
}
|
||||
|
||||
if ( subdivs != eSubdivisions.Zero )
|
||||
{
|
||||
|
||||
for ( int s = 0; s < (int)subdivs; s++ )
|
||||
{
|
||||
#region Assemble Chunks and convert to Arrays
|
||||
List<Chunk> AllChunks = new List<Chunk>();
|
||||
for ( uint i = 0; i < IndexArray.Length; i += 3 )
|
||||
{
|
||||
Chunk chu;
|
||||
Subdivide( Diameter,
|
||||
ref VertexArray[IndexArray[i + 0]],
|
||||
ref VertexArray[IndexArray[i + 1]],
|
||||
ref VertexArray[IndexArray[i + 2]],
|
||||
out chu );
|
||||
AllChunks.Add( chu );
|
||||
}
|
||||
|
||||
Chunk.GetArray( ref AllChunks, out VertexArray, out IndexArray );
|
||||
AllChunks.Clear();
|
||||
#endregion Assemble Chunks and convert to Arrays
|
||||
}
|
||||
}
|
||||
|
||||
for (int i=0; i<VertexArray.Length;i++)
|
||||
{
|
||||
Vector3d.Add(ref VertexArray[i].Position, ref offset, out VertexArray[i].Position);
|
||||
}
|
||||
}
|
||||
|
||||
private void GetDefaultVertices( eDir s, double scale, out VertexT2dN3dV3d first, out VertexT2dN3dV3d second, out VertexT2dN3dV3d third )
|
||||
{
|
||||
VertexT2dN3dV3d t1 = new VertexT2dN3dV3d(),
|
||||
t2 = new VertexT2dN3dV3d(),
|
||||
t3 = new VertexT2dN3dV3d();
|
||||
switch ( s )
|
||||
{
|
||||
case eDir.FrontTopRight:
|
||||
t1 = new VertexT2dN3dV3d( new Vector2d( 0.5, 1.0 ), Vector3d.UnitY, Vector3d.UnitY * scale );
|
||||
t2 = new VertexT2dN3dV3d( new Vector2d( 0.0, 0.0 ), Vector3d.UnitZ, Vector3d.UnitZ * scale );
|
||||
t3 = new VertexT2dN3dV3d( new Vector2d( 0.5, 0.0 ), Vector3d.UnitX, Vector3d.UnitX * scale );
|
||||
break;
|
||||
case eDir.FrontBottomRight:
|
||||
t1 = new VertexT2dN3dV3d( new Vector2d( 0.5, 0.0 ), Vector3d.UnitX, Vector3d.UnitX * scale );
|
||||
t2 = new VertexT2dN3dV3d( new Vector2d( 0.0, 0.0 ), Vector3d.UnitZ, Vector3d.UnitZ * scale );
|
||||
t3 = new VertexT2dN3dV3d( new Vector2d( 0.5, 1.0 ), -Vector3d.UnitY, -Vector3d.UnitY * scale );
|
||||
break;
|
||||
case eDir.FrontBottomLeft:
|
||||
t1 = new VertexT2dN3dV3d( new Vector2d( 0.5, 0.0 ), Vector3d.UnitX, Vector3d.UnitX * scale );
|
||||
t2 = new VertexT2dN3dV3d( new Vector2d( 0.5, 1.0 ), -Vector3d.UnitY, -Vector3d.UnitY * scale );
|
||||
t3 = new VertexT2dN3dV3d( new Vector2d( 1.0, 0.0 ), -Vector3d.UnitZ, -Vector3d.UnitZ * scale );
|
||||
break;
|
||||
case eDir.FrontTopLeft:
|
||||
t1 = new VertexT2dN3dV3d( new Vector2d( 1.0, 0.0 ), -Vector3d.UnitZ, -Vector3d.UnitZ * scale );
|
||||
t2 = new VertexT2dN3dV3d( new Vector2d( 0.5, 1.0 ), Vector3d.UnitY, Vector3d.UnitY * scale );
|
||||
t3 = new VertexT2dN3dV3d( new Vector2d( 0.5, 0.0 ), Vector3d.UnitX, Vector3d.UnitX * scale );
|
||||
break;
|
||||
case eDir.BackTopRight:
|
||||
t1 = new VertexT2dN3dV3d( new Vector2d( 0.5, 1.0 ), Vector3d.UnitY, Vector3d.UnitY * scale );
|
||||
t2 = new VertexT2dN3dV3d( new Vector2d( 0.0, 1.0 ), -Vector3d.UnitX, -Vector3d.UnitX * scale );
|
||||
t3 = new VertexT2dN3dV3d( new Vector2d( 0.0, 0.0 ), Vector3d.UnitZ, Vector3d.UnitZ * scale );
|
||||
break;
|
||||
case eDir.BackBottomRight:
|
||||
t1 = new VertexT2dN3dV3d( new Vector2d( 0.5, 1.0 ), -Vector3d.UnitY, -Vector3d.UnitY * scale );
|
||||
t2 = new VertexT2dN3dV3d( new Vector2d( 0.0, 0.0 ), Vector3d.UnitZ, Vector3d.UnitZ * scale );
|
||||
t3 = new VertexT2dN3dV3d( new Vector2d( 0.0, 1.0 ), -Vector3d.UnitX, -Vector3d.UnitX * scale );
|
||||
break;
|
||||
case eDir.BackBottomLeft:
|
||||
t1 = new VertexT2dN3dV3d( new Vector2d( 0.5, 1.0 ), -Vector3d.UnitY, -Vector3d.UnitY * scale );
|
||||
t2 = new VertexT2dN3dV3d( new Vector2d( 1.0, 1.0 ), -Vector3d.UnitX, -Vector3d.UnitX * scale );
|
||||
t3 = new VertexT2dN3dV3d( new Vector2d( 1.0, 0.0 ), -Vector3d.UnitZ, -Vector3d.UnitZ * scale );
|
||||
break;
|
||||
case eDir.BackTopLeft:
|
||||
t1 = new VertexT2dN3dV3d( new Vector2d( 0.5, 1.0 ), Vector3d.UnitY, Vector3d.UnitY * scale );
|
||||
t2 = new VertexT2dN3dV3d( new Vector2d( 1.0, 0.0 ), -Vector3d.UnitZ, -Vector3d.UnitZ * scale );
|
||||
t3 = new VertexT2dN3dV3d( new Vector2d( 1.0, 1.0 ), -Vector3d.UnitX, -Vector3d.UnitX * scale );
|
||||
break;
|
||||
}
|
||||
first = t1;
|
||||
second = t2;
|
||||
third = t3;
|
||||
}
|
||||
|
||||
|
||||
private void Subdivide( double Scale, ref VertexT2dN3dV3d first, ref VertexT2dN3dV3d second, ref VertexT2dN3dV3d third, out Chunk c )
|
||||
{
|
||||
c = new Chunk(6, 12);
|
||||
|
||||
c.Vertices[0] = first;
|
||||
|
||||
Vector3d.Lerp(ref first.Position, ref second.Position, 0.5,out c.Vertices[1].Normal );
|
||||
c.Vertices[1].Normal.Normalize();
|
||||
c.Vertices[1].Position = c.Vertices[1].Normal * Scale;
|
||||
Vector2d.Lerp( ref first.TexCoord, ref second.TexCoord, 0.5, out c.Vertices[1].TexCoord );
|
||||
|
||||
Vector3d.Lerp( ref third.Position, ref first.Position, 0.5, out c.Vertices[2].Normal );
|
||||
c.Vertices[2].Normal.Normalize();
|
||||
c.Vertices[2].Position = c.Vertices[2].Normal * Scale;
|
||||
Vector2d.Lerp( ref third.TexCoord, ref first.TexCoord, 0.5, out c.Vertices[2].TexCoord );
|
||||
|
||||
c.Vertices[3] = second;
|
||||
|
||||
Vector3d.Lerp( ref second.Position, ref third.Position, 0.5, out c.Vertices[4].Normal );
|
||||
c.Vertices[4].Normal.Normalize();
|
||||
c.Vertices[4].Position = c.Vertices[4].Normal * Scale;
|
||||
Vector2d.Lerp( ref second.TexCoord, ref third.TexCoord, 0.5, out c.Vertices[4].TexCoord );
|
||||
|
||||
c.Vertices[5] = third;
|
||||
|
||||
#region Indices
|
||||
c.Indices[0]=0;
|
||||
c.Indices[1]=1;
|
||||
c.Indices[2]=2;
|
||||
c.Indices[3]=2;
|
||||
c.Indices[4]=1;
|
||||
c.Indices[5]=4;
|
||||
c.Indices[6]=1;
|
||||
c.Indices[7]=3;
|
||||
c.Indices[8]=4;
|
||||
c.Indices[9]=2;
|
||||
c.Indices[10]=4;
|
||||
c.Indices[11]=5;
|
||||
#endregion Indices
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
using System;
|
||||
|
||||
using OpenTK;
|
||||
|
||||
namespace SCJMapper_V2.Shapes
|
||||
{
|
||||
public struct VertexT2dN3dV3d
|
||||
{
|
||||
public Vector2d TexCoord;
|
||||
public Vector3d Normal;
|
||||
public Vector3d Position;
|
||||
|
||||
public VertexT2dN3dV3d( Vector2d texcoord, Vector3d normal, Vector3d position )
|
||||
{
|
||||
TexCoord = texcoord;
|
||||
Normal = normal;
|
||||
Position = position;
|
||||
}
|
||||
}
|
||||
|
||||
public struct VertexT2fN3fV3f
|
||||
{
|
||||
public Vector2 TexCoord;
|
||||
public Vector3 Normal;
|
||||
public Vector3 Position;
|
||||
}
|
||||
|
||||
public struct VertexT2hN3hV3h
|
||||
{
|
||||
public Vector2h TexCoord;
|
||||
public Vector3h Normal;
|
||||
public Vector3h Position;
|
||||
}
|
||||
|
||||
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 1.7 KiB |
@ -0,0 +1,3 @@
|
||||
http://www.hdrlabs.com/sibl/archive.html
|
||||
|
||||
sIBL Archive - Free HDRI sets for smart Image-Based Lighting
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 54 KiB |
Binary file not shown.
After Width: | Height: | Size: 2.7 KiB |
Binary file not shown.
After Width: | Height: | Size: 2.2 KiB |
Binary file not shown.
Binary file not shown.
@ -0,0 +1,25 @@
|
||||
<configuration>
|
||||
<dllmap os="linux" dll="opengl32.dll" target="libGL.so.1"/>
|
||||
<dllmap os="linux" dll="glu32.dll" target="libGLU.so.1"/>
|
||||
<dllmap os="linux" dll="openal32.dll" target="libopenal.so.1"/>
|
||||
<dllmap os="linux" dll="alut.dll" target="libalut.so.0"/>
|
||||
<dllmap os="linux" dll="opencl.dll" target="libOpenCL.so"/>
|
||||
<dllmap os="linux" dll="libX11" target="libX11.so.6"/>
|
||||
<dllmap os="linux" dll="libXi" target="libXi.so.6"/>
|
||||
<dllmap os="linux" dll="SDL2.dll" target="libSDL2-2.0.so.0"/>
|
||||
<dllmap os="osx" dll="opengl32.dll" target="/System/Library/Frameworks/OpenGL.framework/OpenGL"/>
|
||||
<dllmap os="osx" dll="openal32.dll" target="/System/Library/Frameworks/OpenAL.framework/OpenAL" />
|
||||
<dllmap os="osx" dll="alut.dll" target="/System/Library/Frameworks/OpenAL.framework/OpenAL" />
|
||||
<dllmap os="osx" dll="libGLES.dll" target="/System/Library/Frameworks/OpenGLES.framework/OpenGLES" />
|
||||
<dllmap os="osx" dll="libGLESv1_CM.dll" target="/System/Library/Frameworks/OpenGLES.framework/OpenGLES" />
|
||||
<dllmap os="osx" dll="libGLESv2.dll" target="/System/Library/Frameworks/OpenGLES.framework/OpenGLES" />
|
||||
<dllmap os="osx" dll="opencl.dll" target="/System/Library/Frameworks/OpenCL.framework/OpenCL"/>
|
||||
<dllmap os="osx" dll="SDL2.dll" target="libSDL2.dylib"/>
|
||||
<!-- XQuartz compatibility (X11 on Mac) -->
|
||||
<dllmap os="osx" dll="libGL.so.1" target="/usr/X11/lib/libGL.dylib"/>
|
||||
<dllmap os="osx" dll="libX11" target="/usr/X11/lib/libX11.dylib"/>
|
||||
<dllmap os="osx" dll="libXcursor.so.1" target="/usr/X11/lib/libXcursor.dylib"/>
|
||||
<dllmap os="osx" dll="libXi" target="/usr/X11/lib/libXi.dylib"/>
|
||||
<dllmap os="osx" dll="libXinerama" target="/usr/X11/lib/libXinerama.dylib"/>
|
||||
<dllmap os="osx" dll="libXrandr.so.2" target="/usr/X11/lib/libXrandr.dylib"/>
|
||||
</configuration>
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
@ -0,0 +1,191 @@
|
||||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>OpenTK.GLControl</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:OpenTK.GLControl">
|
||||
<summary>
|
||||
OpenGL-aware WinForms control.
|
||||
The WinForms designer will always call the default constructor.
|
||||
Inherit from this class and call one of its specialized constructors
|
||||
to enable antialiasing or custom <see cref="P:OpenTK.GLControl.GraphicsMode"/>s.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:OpenTK.GLControl.components">
|
||||
<summary>
|
||||
Required designer variable.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:OpenTK.GLControl.Dispose(System.Boolean)">
|
||||
<summary>
|
||||
Clean up any resources being used.
|
||||
</summary>
|
||||
<param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
</member>
|
||||
<member name="M:OpenTK.GLControl.InitializeComponent">
|
||||
<summary>
|
||||
Required method for Designer support - do not modify
|
||||
the contents of this method with the code editor.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:OpenTK.GLControl.#ctor">
|
||||
<summary>
|
||||
Constructs a new instance.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:OpenTK.GLControl.#ctor(OpenTK.Graphics.GraphicsMode)">
|
||||
<summary>
|
||||
Constructs a new instance with the specified GraphicsMode.
|
||||
</summary>
|
||||
<param name="mode">The OpenTK.Graphics.GraphicsMode of the control.</param>
|
||||
</member>
|
||||
<member name="M:OpenTK.GLControl.#ctor(OpenTK.Graphics.GraphicsMode,System.Int32,System.Int32,OpenTK.Graphics.GraphicsContextFlags)">
|
||||
<summary>
|
||||
Constructs a new instance with the specified GraphicsMode.
|
||||
</summary>
|
||||
<param name="mode">The OpenTK.Graphics.GraphicsMode of the control.</param>
|
||||
<param name="major">The major version for the OpenGL GraphicsContext.</param>
|
||||
<param name="minor">The minor version for the OpenGL GraphicsContext.</param>
|
||||
<param name="flags">The GraphicsContextFlags for the OpenGL GraphicsContext.</param>
|
||||
</member>
|
||||
<member name="M:OpenTK.GLControl.OnHandleCreated(System.EventArgs)">
|
||||
<summary>Raises the HandleCreated event.</summary>
|
||||
<param name="e">Not used.</param>
|
||||
</member>
|
||||
<member name="M:OpenTK.GLControl.OnHandleDestroyed(System.EventArgs)">
|
||||
<summary>Raises the HandleDestroyed event.</summary>
|
||||
<param name="e">Not used.</param>
|
||||
</member>
|
||||
<member name="M:OpenTK.GLControl.OnPaint(System.Windows.Forms.PaintEventArgs)">
|
||||
<summary>
|
||||
Raises the System.Windows.Forms.Control.Paint event.
|
||||
</summary>
|
||||
<param name="e">A System.Windows.Forms.PaintEventArgs that contains the event data.</param>
|
||||
</member>
|
||||
<member name="M:OpenTK.GLControl.OnResize(System.EventArgs)">
|
||||
<summary>
|
||||
Raises the Resize event.
|
||||
Note: this method may be called before the OpenGL context is ready.
|
||||
Check that IsHandleCreated is true before using any OpenGL methods.
|
||||
</summary>
|
||||
<param name="e">A System.EventArgs that contains the event data.</param>
|
||||
</member>
|
||||
<member name="M:OpenTK.GLControl.PerformContextUpdate">
|
||||
<summary>
|
||||
Execute the delayed context update
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:OpenTK.GLControl.OnParentChanged(System.EventArgs)">
|
||||
<summary>
|
||||
Raises the ParentChanged event.
|
||||
</summary>
|
||||
<param name="e">A System.EventArgs that contains the event data.</param>
|
||||
</member>
|
||||
<member name="M:OpenTK.GLControl.SwapBuffers">
|
||||
<summary>
|
||||
Swaps the front and back buffers, presenting the rendered scene to the screen.
|
||||
This method will have no effect on a single-buffered <c>GraphicsMode</c>.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:OpenTK.GLControl.MakeCurrent">
|
||||
<summary>
|
||||
<para>
|
||||
Makes <see cref="P:OpenTK.GLControl.Context"/> current in the calling thread.
|
||||
All OpenGL commands issued are hereafter interpreted by this context.
|
||||
</para>
|
||||
<para>
|
||||
When using multiple <c>GLControl</c>s, calling <c>MakeCurrent</c> on
|
||||
one control will make all other controls non-current in the calling thread.
|
||||
</para>
|
||||
<seealso cref="P:OpenTK.GLControl.Context"/>
|
||||
<para>
|
||||
A <c>GLControl</c> can only be current in one thread at a time.
|
||||
To make a control non-current, call <c>GLControl.Context.MakeCurrent(null)</c>.
|
||||
</para>
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:OpenTK.GLControl.GrabScreenshot">
|
||||
<summary>
|
||||
Grabs a screenshot of the frontbuffer contents.
|
||||
When using multiple <c>GLControl</c>s, ensure that <see cref="P:OpenTK.GLControl.Context"/>
|
||||
is current before accessing this property.
|
||||
<seealso cref="P:OpenTK.GLControl.Context"/>
|
||||
<seealso cref="M:OpenTK.GLControl.MakeCurrent"/>
|
||||
</summary>
|
||||
<returns>A System.Drawing.Bitmap, containing the contents of the frontbuffer.</returns>
|
||||
<exception cref="T:OpenTK.Graphics.GraphicsContextException">
|
||||
Occurs when no OpenTK.Graphics.GraphicsContext is current in the calling thread.
|
||||
</exception>
|
||||
</member>
|
||||
<member name="P:OpenTK.GLControl.CreateParams">
|
||||
<summary>
|
||||
Gets the <c>CreateParams</c> instance for this <c>GLControl</c>
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:OpenTK.GLControl.IsIdle">
|
||||
<summary>
|
||||
Gets a value indicating whether the current thread contains pending system messages.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:OpenTK.GLControl.Context">
|
||||
<summary>
|
||||
Gets the <c>IGraphicsContext</c> instance that is associated with the <c>GLControl</c>.
|
||||
The associated <c>IGraphicsContext</c> is updated whenever the <c>GLControl</c>
|
||||
handle is created or recreated.
|
||||
When using multiple <c>GLControl</c>s, ensure that <c>Context</c>
|
||||
is current before performing any OpenGL operations.
|
||||
<seealso cref="M:OpenTK.GLControl.MakeCurrent"/>
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:OpenTK.GLControl.AspectRatio">
|
||||
<summary>
|
||||
Gets the aspect ratio of this GLControl.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:OpenTK.GLControl.VSync">
|
||||
<summary>
|
||||
Gets or sets a value indicating whether vsync is active for this <c>GLControl</c>.
|
||||
When using multiple <c>GLControl</c>s, ensure that <see cref="P:OpenTK.GLControl.Context"/>
|
||||
is current before accessing this property.
|
||||
<seealso cref="P:OpenTK.GLControl.Context"/>
|
||||
<seealso cref="M:OpenTK.GLControl.MakeCurrent"/>
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:OpenTK.GLControl.GraphicsMode">
|
||||
<summary>
|
||||
Gets the <c>GraphicsMode</c> of the <c>IGraphicsContext</c> associated with
|
||||
this <c>GLControl</c>. If you wish to change <c>GraphicsMode</c>, you must
|
||||
destroy and recreate the <c>GLControl</c>.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:OpenTK.GLControl.WindowInfo">
|
||||
<summary>
|
||||
Gets the <see cref="T:OpenTK.Platform.IWindowInfo"/> for this instance.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:OpenTK.GLControl.DelayUpdate">
|
||||
<summary>
|
||||
Needed to delay the invoke on OS X. Also needed because OpenTK is .NET 2, otherwise I'd use an inline Action.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:OpenTK.Platform.MacOS.Agl.aglChoosePixelFormat(System.IntPtr,System.Int32,System.Int32[])">
|
||||
<summary>
|
||||
Use this overload only with IntPtr.Zero for the first argument.
|
||||
</summary>
|
||||
<param name="gdevs">
|
||||
</param>
|
||||
<param name="ndev">
|
||||
</param>
|
||||
<param name="attribs">
|
||||
</param>
|
||||
<returns>
|
||||
</returns>
|
||||
</member>
|
||||
<member name="T:OpenTK.Platform.MacOS.AglContext">
|
||||
<summary>
|
||||
AGL context implementation for WinForms compatibility.
|
||||
</summary>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
Loading…
Reference in New Issue