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

VisuElement — defines methods to create and acccess to VisuElement.
VisuNodeArray — Defines the elementary structure to store informations about an element in a box.
VisuBoxed — Defines a common interface for objects with a VisuBox.
VisuPointset — Defines a common interface for objects with points inside a box that can be translated or expanded.
VisuData — Give methods to store and manage data from input file(s).
VisuDataLoadable — a base class for all loadable representation of VisuData objects.
VisuDataAtomic — a class of nodes representing atomic data and providing associated loading methods.
VisuDataSpin — a class of nodes representing spin data and providing associated loading methods.
VisuBox — Defines a bounding box.
VisuGlNodeScene — Defines a storage object to handle all VisuGlExt used to render nodes and associated data.
VisuGlView — Defines all necessary informations for the rendering of a view.
VisuInteractive — Gives tools to interact with the rendered area.
Main capabilities of V_Sim
VisuDataColorizer — a virtual class to colorise VisuNodeArray.
VisuColorization — Adds a possibility to colorize nodes depending on data read in an input file.
VisuDataColorizerFragment — A class defining node colorisation according to VisuNodeValuesFrag.
VisuMaskable — an interface for maskable objects.
VisuNodeMasker — an interface for objects with masking capabilities on VisuNode.
VisuPlane — Adds capabilities to draw and handle planes.
VisuPlaneSet — Defines a storage object to gather VisuPlane objects.
geometry — different routines to do high level geometry studies on a box or a set of boxes.
VisuDataDiff — a VisuNodeValues object to store displacements between to VisuData objects.
VisuVibration — Add a support to animate the node positions with a phonon frequency.
VisuNodeMover — Base class defining an undo stack of geometry modifications.
VisuNodeMoverTranslation — A class defining translations for a set of nodes.
VisuNodeMoverRotation — A class defining rotations for a set of nodes.
Node related method and properties
VisuNodeNeighbours — node neighbours handling.
VisuNodeValues — generic way to store (and being notify) data for each node.
VisuNodeValuesFarray — define a VisuNodeValues object to handle any array of floats.
VisuNodeValuesString — define a VisuNodeValues object to handle strings.
VisuNodeValuesVector — define a VisuNodeValues object to handle vectorial node information.
VisuNodeValuesCoord — define a VisuNodeValues object to access node coordinates.
VisuNodeValuesType — define a VisuNodeValues object to access node typeinates.
VisuNodeValuesFrag — define a VisuNodeValues object to handle frags.
VisuNodeValuesShell — define a VisuNodeValues object to handle shells.
VisuNodeValuesId — define a VisuNodeValues object to access node idinates.
Scalar fields and surfaces
VisuScalarField — Gives capabilities to load a scalar field.
VisuScalarfieldSet — Defines a storage object to gather VisuScalarField objects.
VisuSurface — Supports loading of .surf files and drawing of surfaces through OpenGL.
VisuMap — Describe how to handle and draw coloured map on a plane from a density field.
isoline — handle the drawing and the computation of isolines.
surfaces_points — Define a structure to store a set of triangles defining a surface.
VisuSurfaceResource — Define the rendering parameters of a surface.
pot2surf — Creates surfaces from scalar fields.
VisuScalarFieldBinaryOp — Defines a specialised VisuScalarField class that is the result of a binary operation.
VisuScalarFieldMethod — Defines a specialised VisuScalarField class based on data on a grid.
Methods to read input files
VisuDataLoader — a base class for all load methods.
atomic_d3 — Method to load d3 position file.
atomic_ascii — Method to load ASCII position file.
atomic_xyz — Method to load xyz position file.
atomic_yaml — Method to load YAML position file.
Methods to render nodes and pairs
VisuElementRenderer — a virtual class to render VisuElement.
VisuElementAtomic — a class implementing rendering for VisuRenderingAtomic method.
VisuElementSpin — a class implementing rendering for VisuDataSpin method.
VisuMethodSpin — a class defining how a set of spin should be rendered.
VisuNodeArrayRenderer — An interface grouping all the VisuElementRenderer used to represent a set of VisuNode.
VisuPairCylinderRenderer — a class to render VisuPairLink as cylinders.
VisuPairWireRenderer — a class to render VisuPairLink as wires.
OpenGL drawing methods
VisuGlExt — All objects drawn by V_Sim are defined in by a VisuGlExt object
VisuGlExtSet — Defines a storage object to handle a bunch of VisuGlExt objects.
VisuGlExtLined — Defines a common interface for VisuGlExt objects with line characteristics.
VisuGlExtNodes — Defines methods to draw a set of nodes.
VisuGlExtPairs — Draw links between nodes.
VisuGlExtFrame — Draw a frame with the representation of a color frame.
VisuGlExtBox — Draw a bounding box around nodes.
VisuGlExtBoxLegend — Draw a legend describing the box.
VisuGlExtAxes — Defines methods to draw axes.
VisuGlExtLegend — Draw a frame with the representation of each atom species, its name and the number of elements.
VisuGlExtShade — Draw a frame with the representation of a color shade.
VisuGlExtNodeVectors — Draw arrows at each node to represent forces, displacements, vibrations...
VisuGlExtForces — Draw arrows at each node to represent forces.
VisuGlExtGeodiff — Draw arrows at each node to represent geodiff.
VisuGlExtPlanes — Draw a list of VisuPlane.
VisuGlExtSurfaces — Defines methods to draw surfaces.
VisuGlExtMaps — Defines methods to draw maps.
VisuGlExtMapSet — Defines methods to draw maps that share a same VisuScalarField.
VisuGlExtInfos — give the capability to draw some information near each node.
VisuGlExtScale — Draw an arrow with a label.
VisuGlExtBg — Handle the background colour and the fog.
VisuGlExtMarks — Draw features on nodes, like measurement marks or highlights.
VisuGlExtPaths — Defines methods to draw paths.
VisuGlExtVibrations — Draw arrows at each node to represent vibrations.
Animating changes
VisuAnimation — Defines a class to setup animation of a property.
VisuAnimatable — an interface defining object with animatable properties.
Dealing with pairs
VisuPair — V_Sim can draw link between nodes. This part defines a pair object and interface to draw pairs.
VisuPairSet — a base class for all loadable representation of VisuData objects.
VisuPairCylinder — An interface defining all the properties required to draw a VisuPair as a cylinder.
VisuPairWire — An interface defining all the properties required to draw a VisuPair as a wire.
VisuPairLink — An object to store rendering properties of a VisuPair for a given distance criterion.
VisuPairLinkRenderer — Defines a common class for VisuPairLink renderers.
Methods to export to other formats
VisuDump — Some resources to add the ability to export the rendered data to an other format (usually image format).
VisuDumpData — A generic class defining interface to export VisuData into text formats.
VisuDumpScene — A generic class defining interface to export VisuGlNodeScene into image formats.
dumpThroughGdkPixbuf — add an export capability into PNG and JPG 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.
dumpToYaml — add an export capability of current positions.
Generic tools
toolOptions — A convienent wrapper around GHashTable that can support types.
ToolPool — a storage container that can uniquely stores GBoxed objects.
toolArray — read text files formated in columns.
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 — ToolShades are color gradients.
ToolFileFormat — Describes file format objects (name patterns, description, properties...).
ToolFiles — abstract reading of compressed or not text files.
ToolSubBinding — .
OpenGL tools
VisuGl — This part is responsible for the pseudo3D rendering through OpenGl and gives methods to adapt the view.
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.
objectList — Gives storage for ids used by OpenGL lists and provides primitive routine for common drawing operations (distances, torus...).
Miscellaneous
VisuNodeFinder — provide a node lookup based on coordinates.
VisuConfigFile — Defines methods to access (read/write) to config files and to create different entries.
visu_basic — Main functions of V_Sim (except graphical ones).
visu_plugins — Introduces the basic handling of plug-ins.
visu_commandLine — All methods needed to parse options from the command line.
visu_actionInterface — Interface for defining actions and events.
visu_openGL
ToolDbgObj — A wrapper around GObject for debugging purposes