amorilia (author)
Sun Apr 13 08:07:25 -0700 2008
commit  b78aed9cab9edb7bf0c178519731eea2d3d751d7
tree    6afaea4d25a655d99516172978cd0e6e8f412fed
parent  0fa7e7083134f3ed150d9c98f952b82424a953ed
pyffi /
name age message
file ChangeLog.txt Sun Apr 13 08:07:25 -0700 2008 pyffi: changelog [amorilia]
file MANIFEST.in Mon Feb 11 04:54:58 -0800 2008 added kfm file support (wip) [amorilia]
directory PyFFI/ Loading commit data...
file README.txt Sun Jan 27 03:56:38 -0800 2008 eol style CRLF on readme and changelog for notepad [amorilia]
directory examples/ Sun Jun 24 07:47:28 -0700 2007 initial import [amorilia]
file install.bat Sun Mar 30 02:25:56 -0700 2008 property update [amorilia]
file invalid.nif Sat Oct 13 05:55:08 -0700 2007 an invalid nif file for doctesting [amorilia]
file makezip.bat Wed Apr 09 05:24:54 -0700 2008 pyffi: makezip.bat now finds python [amorilia]
file makezip.sh Sun Apr 06 17:27:01 -0700 2008 added bitmap for pyffi bdist_wininst installer [amorilia]
directory niftools/ Sun Apr 13 03:06:14 -0700 2008 pyffi nif.xml: documentation for constraints (w... [amorilia]
file pyffi_install_152x261.bmp Sun Apr 06 17:27:01 -0700 2008 added bitmap for pyffi bdist_wininst installer [amorilia]
file pyffi_install_164x314.png Sun Apr 06 17:18:13 -0700 2008 added the new icons created by Seith [amorilia]
file pyffipostinstallation.py Mon Mar 24 02:40:48 -0700 2008 uninstaller: remove from maya directory [amorilia]
file rundoctest.bat Sun Mar 30 02:25:56 -0700 2008 property update [amorilia]
file rundoctest.py Fri Apr 04 06:52:33 -0700 2008 changelog update, doctest includes bsplinedata [amorilia]
file setup.py
file test.cgf Sat Sep 29 06:33:09 -0700 2007 cgf read doctest [amorilia]
file test.dds Sat Feb 16 15:54:46 -0800 2008 dds doctest fix [amorilia]
file test.kfm Mon Feb 11 05:29:58 -0800 2008 adding kfm test file [amorilia]
file test.nif Thu Jan 24 16:22:15 -0800 2008 reverted accidental change on test file [amorilia]
file test.tga Wed Mar 26 05:16:33 -0700 2008 added tga doctest [amorilia]
directory tools/ Mon Mar 24 06:55:12 -0700 2008 cgftoaster tangentspace test more informative; ... [amorilia]
README.txt
Installation
------------

python setup.py install

Overview
--------

The general philosophy of the library is to supply all information
that comes naturally from files, and nothing more. For very common
calculations, some functions might be added, to make life easier
for importers and exporters. Specialized functions are implemented as
tools (typically, as scripts) rather than as part of the library.

You can specify an alternate location of your xml file, for instance cgf.xml,
by setting the CGFXMLPATH environment variable to the directory where
cgf.xml can be found. If CGFXMLPATH is set, the library will first
look there. The same applies to all other formats.

The code is organized as follows.

* Python File Format Interface - representing a file format specified by an XML
  file in Python

  - PyFFI/__init__.py

    Contains the main metaclass which generates classes for each type
    defined in the XML.

  - PyFFI/XmlHandler.py

    The XML handler, contains the core code that transforms the XML
    file into classes. The parser code is based on NifSkope's XML
    parser (see http://niftools.sourceforge.net).

  - PyFFI/Bases/*

    All base classes for various classes generated by the
    XmlFileFormat metaclass, i.e. basic and struct. Also contains
    the implementation of array's and the expression parser.

* CGF Format Library - instanciates classes, and customize them

  - PyFFI/CGF/__init__.py: instanciates classes for the CGF format

  - PyFFI/CGF/*.py: customization of particular blocks

* NIF Format Library - similar to CGF

* Utilities

  - PyFFI/Utils/__init__.py: collection of random small utilities

    + hexDump: dump file chunk in hexadecimal format

    + walk: a variant of os.walk()

    + TriStrip: stripifier utilities (uses a Python port of NvTriStrip)

    + MathUtils: common vector and matrix operations

    + QuickHull: a simple implementation of the 2d and 3d quick hull
      algorithms

    + Inertia: a library for calculating mass, center of gravity, and inertia
      tensor of common shapes

  - tools/NIF and tools/CGF: format specific scripts and helper modules

    + niftoaster and cgftoaster: for hacking nif and cgf files

    + ffvt3rskinpartition: skin partition calculator for Freedom Force vs. The
      3rd Reich

    + nifvisualizer: visualizes particular blocks of a nif file

    + nifmakehsl: create hex workshop structure libraries for all nif formats

    + nifoptimize: remove redundant vertices and restripify nif files

  - tools/qskopelib: modules used by QSkope (PyFFI's GUI application)

The following code resides in the subversion trunk only
(https://pyffi.svn.sf.net/svnroot/pyffi/trunk) and is not distributed
with the library.

* tests

  - rundoctest.py: runs all tests in the documentation

* examples

  - examples/metaclass_simple.py

    Proof of concept of how classes can be generated from an xml
    description. I keep it there as it could be useful to get a quick
    idea of how the XML is converted to a bunch of classes.

* www

  - script for generating epydoc documentation