Home Up CALbits Tricks Testing Gamemaker



A module to assist the importing and exporting of CAL3D data files as used by the IMVU chat system.

Expect this module to change as further information becomes available. Also expect it to be renamed once its specification stabilises.

Important note: The module will be moved out of the "Local" namespace when its specification stabilises. 


Version 0.02

Identical to 0.01 but gains a description in comments at the head of the file

Version 0.01

Uses the XML::Structured importer
Importing and parsing file into a data structure
Importing and parsing string into data structure
Exporting data structure as a string

Not implemented:

Using XML::SAX directly
Using XML::Parser directly
Parsing numeric content
Parsing translations and rotations: It is assumed that a future version would convert "0 0 0 1" into an array reference: [0,0,0,1] and convert the corresponding array ref back to a string.
Morph extensions to the XMF file format (no data is available)
quaternion rotation library functions



XML::Structured requires either XML::Parser or XML::SAX

You'll probably also need XML::NamespaceSupport too though I've not checked this as I let the CPAN shell install dependancies automatically.

XML::Structured version 1.0 requires a small patch in order to run correctly without the XML::Parser module. 

  1. Find the XML folder
  2. Open in a text editor
  3. Look at the first few lines:
    package XML::Structured;

    use vars qw($VERSION @ISA @EXPORT);

    require Exporter;

    @ISA = qw(Exporter);
    @EXPORT = qw(XMLin XMLinfile XMLout);
    $VERSION = '1.0';

    # use XML::Parser;

  4. The line "require Exporter;" is missing and should be added.
  5. The line "use XML::Parser;" should be commented out or removed.