pot2surf

pot2surf — Creates surfaces from scalar fields.

Synopsis




int         pot2surf                        (const char *file_to_convert,
                                             GString *file_created);
int         pot2surf_direct                 (const gchar *surf_file_to_write,
                                             const gchar *pot_file_to_read,
                                             int nsurfs_to_build,
                                             const float *surf_value,
                                             const gchar **surf_name);
gboolean    pot2surfCreate                  (Surfaces **surf,
                                             ScalarField *field,
                                             double isoValue,
                                             int id,
                                             const gchar *name);

Description

Originally written by Luc Billard for his program VISUALISE. It has been since transformed to a single function and integrated in V_Sim. .pot file are text files which specification are the following :

  • 1st line: full pathname of the potential file to read

  • 2nd line: full pathname of the surface file to build

  • 3rd line: an integer giving the nbr n of isosurfaces to build

  • Each of the n following lines must match the pattern [value name] where value is a real number for the isovalue and name is the name given for the corresponding isosurface to build. Each surface should be named surface_*.

The function will fail if it finds no isosurface corresponding to some of the given isovalues. The panelSurfacesTools contains a frontend to build valid .instruc files. This panel is originally integrated in V_Sim. You can access it through the Convert tab in the Isosurfaces panel.

Details

pot2surf ()

int         pot2surf                        (const char *file_to_convert,
                                             GString *file_created);

Tries to execute file_to_convert as a .instruc file. If file_created is a valid GString, it will be filled with the name of the .surf file created in case of success. If it's NULL, no information about the .surf file is written.

file_to_convert : target instruc file to execute
file_created : a GString (will be filled with the name of the .surf file created)
Returns : 0 in case of success, n!=0 otherwise.

pot2surf_direct ()

int         pot2surf_direct                 (const gchar *surf_file_to_write,
                                             const gchar *pot_file_to_read,
                                             int nsurfs_to_build,
                                             const float *surf_value,
                                             const gchar **surf_name);

Read the given pot file and produce an associated surf file. WARNING, it may be removed later.

surf_file_to_write : target surf file
pot_file_to_read : source pot file
nsurfs_to_build : number of surfaces to build
surf_value : an array with iso-values
surf_name : an array with iso-surface names.
Returns : 0 in case of success, n!=0 otherwise.

pot2surfCreate ()

gboolean    pot2surfCreate                  (Surfaces **surf,
                                             ScalarField *field,
                                             double isoValue,
                                             int id,
                                             const gchar *name);

Call pot2surfCreate_uniform_mesh or pot2surfCreate_nonuniform_mesh depending on the meshflag meshtype of the scalar field. Then create on the fly a surface from the scalar field field. If name is given, the surface is created with it, if not, "Isosurface id + 1" is used. surf can already contains several surfaces, in that case, the new surface is added. If surf is NULL, then a new Surfaces object is created and returned.

surf : a location on a Surfaces pointer ;
field : the scalar field to create the surface from ;
isoValue : the value of the isosurface ;
id : an integer identifying the surface ;
name : the name of the surface to use (can be NULL).
Returns : TRUE if the surface is created.

See Also

panelSurfacesTools