+-------------------------------------------------------------------------------
| Info
+-------------------------------------------------------------------------------

 MdxLib v1.04
  Created by Magnus Ostberg (aka Magos)
  http://www.magosx.com


+-------------------------------------------------------------------------------
| What is this?
+-------------------------------------------------------------------------------

 MdxLib is a .NET 3.5 Class Library to handle WarCraft 3 models.
  It's mainly aimed for programmers to be used in tools and similar.


+-------------------------------------------------------------------------------
| Features
+-------------------------------------------------------------------------------

 An object oriented approach to handling and editing WarCraft 3 models.
  You handle objects and references, not raw data and ID's.

 Automation - if a component is removed from a model, all references to it
  are nullified instead of being invalid.

 Lazy initialization - some parts of the model are only created if neccessary.

 Buildt-in support for MDL, MDX and XML model formats.

 Buildt-in undo/redo system.

 Metadata - store your own custom data in the models (and still have them
  work properly in WarCraft 3).


+-------------------------------------------------------------------------------
| Notes
+-------------------------------------------------------------------------------

 When loading a model format always use a newly created CModel. Don't reuse
  a model that has been cleared, certain sideeffects may occur.

 Make sure when attaching vertices on a face and groups on a vertex that
  what you attach lies in the same geoset.

 Each geoset should have an amount of CGeosetExtent's equal to the number
  of sequences in the model.

 Use "Model.HasGeosets" rather than "Model.Geosets.Count > 0" since it
  retains laziness among the lazy initialization.

 When adding metadata do not use multibyte characters. These may corrupt
  the model if saved to MDX format. Stick to plain old ASCII.


+-------------------------------------------------------------------------------
| FAQ
+-------------------------------------------------------------------------------

 Q: There is no exe, how do I run it!?!?
  A: It's not an executable program, it's a .NET 3.5 Class Library.
     Unless you're a programmer you won't find this useful.

 Q: How do I use this library?
  A: Preferably you use Visual Studio with the 3.5 framework. Other environments
     *may* also be able to use it, but that's beyond my current knowledge.
     Just add a reference to the DLL and you can use the included classes.

 Q: I still don't know how to use it!
  A: There are some samples (example code) and there's a reference for use with
     intellisense (an external xml-file, just make sure it's in the same folder
     as the dll). Apart from this it's up to you. Writing a complete reference
     describing every aspect of mdx is way too much work. Sorry!

 Q: Can I have the source code for the dll?
  A: At the moment - no. I'm planning on releasing it as open source later, but
     I wan't it to be more complete and bugfree first.


+-------------------------------------------------------------------------------
| Version history
+-------------------------------------------------------------------------------

 1.00 (2008-08-02)
  First version released. Everything is implemented as far as I know,
  however it requires lots of testing.

 1.01 (2008-08-04)
  Added support for storing metadata in models. This way you can store whatever
  extra data you like without corrupting the model (some 3rd party tools may
  not work properly though).
  If you have problems opening the models in War3 Model Editor check out
  http://www.magosx.com for an updated version.

 1.02 (2008-08-15)
  Various fixes. Made some classes and class constructors private
  (not accessible) since they should only be used internally anyway.

 1.03 (2008-08-28)
  Completed the missing MDX animation tags through hex-hacking (no official
  blizzard models seems to use these)

  Light:
    KLAS - Attenuation Start
    KLAE - Attenuation End

  Particle emitter:
    KPEE - Emission Rate
    KPEG - Gravity
    KPLN - Longitude
    KPLT - Latitude
    KPEL - Life Span
    KPES - Initial Velocity

  Particle emitter 2:
    KP2R - Variation
    KP2G - Gravity

   Ribbon Emitter:
    KRCO - Color
    KRTX - TextureSlot

 1.04 (2009-02-11)
  Model components can have tagged data (a Tag attribute) so you can attach
  custom data to them.
