Module type
Class type

LaTex output. It is given in terms of three macros \meshline, \meshpoint, and \meshtriangle to plot edges, points and (filled) triangles. The arguments of these macros are described by comments in the output files. If you do not provide your own implementations, default ones will be used. The LaTeX package tikz is required -- which works for PostScript as well as PDF output.

type color = int

RGB Color representation 0xRRGGBB. It will be converted to TeX by the functions below.

val save : ?edge:(int -> color option) -> 'l t -> string -> unit

save mesh file saves the mesh as LaTeX PGF commands. You can input the file in a tikzpicture environment to render the mesh.

  • parameter edge

    allows to specify the color of each edge. If the function returns None, the edge is not drawn. Default: all are black.

  • raises Invalid_argument

    if mesh#edge is empty or mesh#point is empty.

val write : ?edge:(int -> color option) -> 'l t -> out_channel -> unit

Same as save but write the command to the channel.

val level_curves : ?boundary:(int -> color option) -> 'l t -> 'l vec -> ?level_eq:(float -> float -> bool) -> (float * color) list -> string -> unit

level_curves mesh z levels file outputs into file LaTeX PGF commands to display the level curves at levels of the P1 FEM surface with values z on the mesh mesh. Each level is a couple (l, c) where l is the level value and c is the RGB color to be used to display it. The output is done as TeX macros \meshline{R,G,B}{x1}{y1}{x2}{y2}, \meshpoint{point number}{x}{y} and \meshtriangle{R,G,B}{x1}{y1}{x2}{y2}{x3}{y3}, so it is easily customizable from within LaTeX. Default values for these macros are provided if they are not defined.

  • parameter boundary

    specifies the color of the boundary edges given their marker value. Returning None means that one does not want the border with that marker to be printed.

  • parameter level_eq

    an approximate equality for levels that are judged not to be distinguishable. It is expected that l1 = l2 implies level_eq l1 l2. This function is mainly used not to draw the boundary edges at levels given in levels.

val super_level : ?boundary:(int -> color option) -> 'l t -> 'l vec -> float -> color -> string -> unit

super_level mesh z level color file outputs into file the LaTeX PGF command to display the super-level { (x,y) | z(x,y) > l }. You can customize the output by defining \meshfilltriangle{R,G,B}{x1}{y1}{x2}{y2}{x3}{y3} and \meshfillquadrilateral{R,G,B}{x1}{y1}{x2}{y2}{x3}{y3}{x4}{y4}.

val sub_level : ?boundary:(int -> color option) -> 'l t -> 'l vec -> float -> color -> string -> unit

sub_level mesh z level color file same as super_level except that the sub-level { (x,y) | z(x,y) < l } is drawn.