Part I. Core

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".

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.

Table of Contents

VisuObject — A general object to store the signals.
visu_commandLine — All methods needed to parse options from the command line.
visu_basic — Main functions of V_Sim (except graphical ones).
visu_elements — defines methods to create and acccess to VisuElement.
visu_nodes — Defines the elementary structure to store informations about an element in a box.
visu_data — Give methods to store and manage data from input file(s).
opengl — This part is responsible for the pseudo3D rendering through OpenGl and gives methods to adapt the view.
VisuRendering — Methods to create and add new rendering methods.
visu_configFile — Defines methods to access (read/write) to config files and to create different entries.
visu_extension — All objects drawn by V_Sim are defined in by a VisuExtension object
visu_pairs — V_Sim can draw link between nodes. This part defines a pair object and interface to draw pairs.
visu_dump — Some resources to add the ability to export the rendered data to an other format (usually image format).
visu_plugins — Introduces the basic handling of plug-ins.
Core tools
toolOptions — A convienent wrapper around GHashTable that can support types.
toolMatrix — Defines basic handlings on matrix.
toolConfigFile — Generic read methods of the configuration files are defined here.
toolFortran — Introduces routines to read the binary Fortran data format.
toolPhysic — introduce physical values for the chemical species.
toolColor — Simple handling and storage of RGBA colours.
toolShade — Shades are color gradients.
toolFileFormat — Describes file format objects (name patterns, description, properties...).
Rendering methods
renderingAtomic — A rendering method to draw atoms positioned in a box.
renderingAtomic_d3 — Method to load d3 position file.
renderingAtomic_ascii — Method to load ascii position file.
atomic_xyz — Method to load ascii position file.
renderingSpin — A module able to represent atoms by their position and spin.
OpenGL tools
renderingMode — Controls the way OpenGL renders objects.
light — Controls the use of lights in the rendering window.
text — Enables capabilities to write some text on rendering screen.
view — Defines all necessary informations for the rendering of a view.
interactive — Gives tools to interact with the rendered area.
objectList — Gives storage for ids used by OpenGL lists and provides primitive routine for common drawing operations (distances, torus...).
Pairs extensions
cylinder — Gives methods to draw cylinders as OpenGl objects pairing two elements.
wire — Gives methods to draw lines as OpenGl objects pairing two elements.
OpenGL specific extensions
box — Draw a bounding box around nodes.
axes — Defines methods to draw axes.
extInfos — give the capability to draw some information near each node.
scale — Draw an arrow with a label.
fogAndBGColor — Handle the background colour and the fog.
legend — Draw a frame with the representation of each atom species, its name and the number of elements.
marks — Draw features on nodes, like measurement marks or highlights.
rings — an extension to highlight closed rings in a structure.
Extra functionalities
dataFile — Adds a possibility to colorize nodes depending on data read in an input file.
dataNode — Extends capabilities of node properties.
extraNode — add further characteristics to the nodes.
plane — Adds capabilities to draw and handle planes.
scalarFields — Gives capabilities to load a scalar field.
isoline — handle the drawing and the computation of isolines.
surfaces — Supports loading of .surf files and drawing of surfaces through OpenGL.
surfaces_points — Define a structure to store a set of triangles defining a surface.
surfaces_resources — Define the rendering parameters of a surface.
pot2surf — Creates surfaces from scalar fields.
geometry — different routines to do high level geometry studies on a box or a set of boxes.
vibration — Add a support to animate the node positions with a phonon frequency.
map — Describe how to handle and draw coloured map on a plane from a density field.
OS dependancy and rendering window backend
visu_actionInterface — Interface for defining actions and events.
visu_openGL — Define the OS dependent routines related to OpenGL.
Methods to export to other formats
dumpThroughGdkPixbuf — add an export capability into PNG and JPG files.
dumpToGif — add an export capability into GIF files.
dumpToAscii — add an export capability of current positions.
dumpToTiff — add an export capability into TIFF files.
dumpToXyz — add an export capability of current positions.
dumpToPsAndPdf — add an export capability into PS and PDF files (encapsulating bitmaps).
dumpToSVG — add an export capability into SVG files.
dumpToABINIT — add an export capability of current positions in ABINIT format.