<?xml version="1.0" encoding="ISO-8859-1"?>

<ze_vertex name="xyz">
    <!-- Create a vertex object.
    If the object will not be re-used, omit the name attribute.
    
    <ze_normal> also create a vertex object.
    
    Methods include:
    -->

    <clear>all</clear>
        <!-- Clears data it contains -->
    
    <append>x, y, z, x, y, z ...
         x, y, z ...
    </append>
        <!-- Adds vertex coordinate data.
        
        Data can be in multiple lines and a line can include
        mutiple datasets of x, y, and z.
        
        But a dataset must x, y, and z.
        -->
    
    <readtext x="ix" y="iy" z="iz" skip="n" grid="true">filename, dataset</readtext>
        <!-- Imports vertex data from the dataset in the ASCII file.

        A line starts with % indicates dataset name and characters
        after %  will be treated as the dataset identifier.
        
        Vertex data must follow the identifier immediately.
        
        Any line started with # or %  after the indentifier
        indicates the end of the dataset.
        
        By default the first three columns of data will be treated
        as x, y, and z. This order and column numbers
        can be set with x, y, and z attributes.
        
        If the skip attribute is set, n numbers of records will be
        skipped after accepted a record.
        
        If the grid attribute is set to true, the function treats the dataset
        as on grids on the x-y plane with the first datum at (0, 0), the second
        at (1, 0), and so on. The number of data in the first line determines
        the number of grids along x-axis. Data will be add to the object as polygon
        of GL_QUADS.
        -->

    <add vertex="name">x, y, z</add>
    <sub vertex="name">x, y, z</sub>
    <mul vertex="name">x, y, z</mul>
    <div vertex="name">x, y, z</div>
        <!-- These functions perform addition, subtraction, multiplicaiton,
        and division with x, y, and z for each vertex.
        
        If vertex="name" is used, the operations will be done with each
        name.x+x, name.y+y, and name.z+z.
        -->
   
    <resetx step="number">v</resetx>
    <resety step="number">v</resety>
    <resetz step="number">v</resetz>
        <!-- Resets every x, y, or z in the vertex object with the
        fisrt to v, the second to v+step, the third to 2*step, and so on.
        The step is 0 by default.
        -->
        
    <dll append="true" params="p1, p2, ...">filename, function</dll>
        <!-- Calls the the function in the dynamic link library.
        
        Refer to the reference web page for details:
            http://www.zegraph.com/xmlscript/referencel.html
        -->
        
    <print>device</print>
        <!-- If the device is stdout, print vertex data to the standard
        output device: otherwise tries to open the device as a file and
        print data to the file.
        -->

    <copyfrom>name</copyfrom>
        <!-- Copy vertex data from the named object -->
        
    <normalize>all</normalize>
        <!-- Normalize all vertex of the object -->
        
    <normal>n</normal>
        <!-- Calculate vertex normal.
        The n parameter indicates the number of vertices the comprise a polygon.
        -->

</ze_vertex>