<?xml version="1.0"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">

<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">
  <bookinfo>
    <title>V_Sim API - Reference Manual</title>
    <releaseinfo>for V_Sim <xi:include href="version" parse="text"/></releaseinfo>
  </bookinfo>

  <part id="core">
    <title>Core</title>
    <partintro>
      <para>This is the program itself without the interface. Basically V_Sim allows the user to see in a pseudo 3D representation a list of elements known by their positions in space, all contained in a box. And it gives tools to rotate, zoom and retrieve informations on positions, angles and distances. The program is supposed to be modular and the programer can add new functions "easily".</para>
      <para>There are three sections. The first section deals with all the main functions to handle with this modularity, with the 3D drawing... The second section gathers all the extensions that have been added to improve V_Sim in the rendering area. The third section deals with the different possibilities that exist for the user to render different kind of elements.</para>
    </partintro>
    <xi:include href="xml/visu_object.xml"/>
    <xi:include href="xml/visu_tools.xml"/>
    <xi:include href="xml/visu_commandLine.xml"/>
    <xi:include href="xml/visu_basic.xml"/>
    <xi:include href="xml/visu_elements.xml"/>
    <xi:include href="xml/visu_nodes.xml"/>
    <xi:include href="xml/visu_data.xml"/>
    <xi:include href="xml/opengl.xml"/>
    <xi:include href="xml/visu_rendering.xml"/>
    <xi:include href="xml/visu_configFile.xml"/>
    <xi:include href="xml/visu_extension.xml"/>
    <xi:include href="xml/visu_pairs.xml"/>
    <xi:include href="xml/visu_dump.xml"/>
    <xi:include href="xml/visu_pickMesure.xml"/>
    <xi:include href="xml/visu_plugins.xml"/>
    <chapter>
      <title>Core tools</title>
      <para>There are differents tools that can be shared by every modules in V_Sim, such as file support, list of colors, common shades...</para>
      <xi:include href="xml/toolColor.xml"/>
      <xi:include href="xml/toolConfigFile.xml"/>
      <xi:include href="xml/toolFileFormat.xml"/>
      <xi:include href="xml/toolFortran.xml"/>
      <xi:include href="xml/toolMatrix.xml"/>
      <xi:include href="xml/toolOptions.xml"/>
      <xi:include href="xml/toolShade.xml"/>
    </chapter>
    <chapter>
      <title>Rendering methods</title>
      <para>Main purpose of V_Sim is to render some file describing positions and other informations n a graphical way. This is achieved implementing #RenderingMethods. Currently two methods exist, one draw spheres (or other geometric forms such as cubes) on defined positions. The other is a more specialised version of the former, adding a direction information on each position. Ths method is called SpiRendering and is usefull to render spin configurations.</para>
      <xi:include href="xml/renderingSpin.xml"/>
      <xi:include href="xml/renderingAtomic.xml"/>
      <xi:include href="xml/renderingAtomic_d3.xml"/>
      <xi:include href="xml/renderingAtomic_ascii.xml"/>
      <xi:include href="xml/atomic_xyz.xml"/>
    </chapter>
    <chapter>
      <title>OpenGL tools</title>
      <para>These little utilities are dealing with OpenGL. They are not essential to V_Sim but can add some nice features that can be shared between different modules.</para>
      <xi:include href="xml/renderingMode.xml"/>
      <xi:include href="xml/light.xml"/>
      <xi:include href="xml/text.xml"/>
      <xi:include href="xml/view.xml"/>
      <xi:include href="xml/interactive.xml"/>
      <xi:include href="xml/objectList.xml"/>
    </chapter>
    <chapter>
      <title>Pairs extensions</title>
      <para>Drawing pairs is done via external modules. For the moment, two modules exist to draw pairs : one draws flat lines between elements (colour and width are user-defined) and the other use cylinders to represents pairs (radius and colour also user-defined).</para>
      <xi:include href="xml/cylinder.xml"/>
      <xi:include href="xml/wire.xml"/>
    </chapter>
    <chapter>
      <title>OpenGL specific extensions</title>
      <para>New rendering facilities.</para>
      <xi:include href="xml/box.xml"/>
      <xi:include href="xml/axes.xml"/>
      <xi:include href="xml/fogAndBGColor.xml"/>
    </chapter>
    <chapter>
      <title>Extra functionalities</title>
      <para>Other capabilities.</para>
      <xi:include href="xml/dataFile.xml"/>
      <xi:include href="xml/dataNode.xml"/>
      <xi:include href="xml/plane.xml"/>
      <xi:include href="xml/scalarFields.xml"/>
      <xi:include href="xml/surfaces.xml"/>
      <xi:include href="xml/pot2surf.xml"/>
    </chapter>
    <chapter>
      <title>OS dependancy and rendering window backend</title>
      <xi:include href="xml/visu_windowInterface.xml"/>
      <xi:include href="xml/visu_actionInterface.xml"/>
      <xi:include href="xml/visu_OSInterface.xml"/>
      <xi:include href="xml/visu_openGL.xml"/>
    </chapter>
    <chapter>
      <title>Methods to export to other formats</title>
      <xi:include href="xml/dumpToPsAndPdf.xml"/>
      <xi:include href="xml/dumpToTiff.xml"/>
      <xi:include href="xml/dumpToGif.xml"/>
      <xi:include href="xml/dumpThroughGdkPixbuf.xml"/>
      <xi:include href="xml/dumpToAscii.xml"/>
    </chapter>
    <chapter>
      <title>External include files</title>
      <para>All add-ons to V_Sim are declared in lists in differents externalSomethingFile.h.</para>
      <xi:include href="xml/externalPairsExtensions.xml"/>
      <xi:include href="xml/externalOpenGLExtensions.xml"/>
      <xi:include href="xml/externalRenderingMethods.xml"/>
    </chapter>
    <chapter>
      <title>Plug-ins</title>
      <para>This is official plugins description.</para>
      <xi:include href="xml/nq_basic.xml"/>
      <xi:include href="xml/nq_structure.xml"/>
      <xi:include href="xml/nq_density.xml"/>
    </chapter>
  </part>
  <part id="gtkInterface">
    <title>Gtk interface</title>
    <chapter>
      <title>Main interface</title>
<!--      <xi:include href="xml/interface.xml"/> -->
      <xi:include href="xml/callbacks.xml"/>
<!--      <xi:include href="xml/support.xml"/> -->
      <xi:include href="xml/gtk_main.xml"/>
      <xi:include href="xml/gtk_observePick.xml"/>
      <xi:include href="xml/gtk_about.xml"/>
      <xi:include href="xml/gtk_save.xml"/>
      <xi:include href="xml/gtk_pairs.xml"/>
      <xi:include href="xml/gtk_openGLWidget.xml"/>
      <xi:include href="xml/gtk_renderingWindowWidget.xml"/>
    </chapter>
    <chapter>
      <title>V_Sim specific widgets</title>
      <xi:include href="xml/gtk_colorComboBoxWidget.xml"/>
      <xi:include href="xml/gtk_numericalEntryWidget.xml"/>
      <xi:include href="xml/gtk_dumpDialogWidget.xml"/>
      <xi:include href="xml/gtk_toolPanelWidget.xml"/>
      <xi:include href="xml/gtk_shadeComboBoxWidget.xml"/>
    </chapter>
    <chapter>
      <title>Panel add-ons</title>
      <xi:include href="xml/panelBoxAxes.xml"/>
      <xi:include href="xml/panelFogBgColor.xml"/>
      <xi:include href="xml/gtkAtomic.xml"/>
      <xi:include href="xml/gtkSpin.xml"/>
      <xi:include href="xml/panelElements.xml"/>
      <xi:include href="xml/panelBrowser.xml"/>
      <xi:include href="xml/panelPlanes.xml"/>
      <xi:include href="xml/panelDataFile.xml"/>
      <xi:include href="xml/panelSurfaces.xml"/>
      <xi:include href="xml/panelSurfacesTools.xml"/>
      <xi:include href="xml/panelMethod.xml"/>
      <xi:include href="xml/panelOpenGL.xml"/>
      <xi:include href="xml/visuConfig.xml"/>
      <xi:include href="xml/gtk_cylinder.xml"/>
      <xi:include href="xml/gtk_wire.xml"/>
<!--      <xi:include href="xml/externalModules.xml"/> -->
<!--      <xi:include href="xml/externalRenderingMethods_gtk.xml"/> -->
    </chapter>
  </part>

  <index>
    <title>Index</title>
  </index>
</book>
