Skip to content
Bruno Levy edited this page Jul 11, 2022 · 4 revisions

Graphite Mesh Commands reference

Points

Preprocessing

  • Points/Preprocessing/smooth_point_set : Smoothes a pointset by projection onto local planes.

    arg name type default value description
    nb_iterations unsigned int 1 number of smoothing iterations.
    nb_neighbors unsigned int 30 number of neighbors for estimating tangent plane.
  • Points/Preprocessing/detect_outliers : Marks isolated points as selection.

    arg name type default value description
    nb unsigned int 10 number of points in neighborhood
    radius double 0.01 maximum neighborhood size
    relative_radius bool true radius is relative to object bbox diagonal.
  • Points/Preprocessing/estimate_normals : Estimates the normal vector to a point-sampled surface using K nearest neighbors. The computed normals are stored in the normal attribute.

    arg name type default value description
    nb_neighbors unsigned int 30 number of nearest neighbors (K).
    reorient bool true if true, try to enforce coherent normal orientations by propagation over the KNN graph.
  • Points/Preprocessing/estimate_density : Estimates the density.

    arg name type default value description
    radius double 0.005 estimated density is one over number of points within radius
    relative_radius bool true radius is relative to object bbox diagonal.
    attribute std::string density name of the attribute where to store the estimated density

Reconstruction

  • Points/Reconstruction/reconstruct_surface_SSSR : Reconstructs a surface from a point set using Simple and Scalable Surface Reconstruction.

    arg name type default value description advanced
    radius double 5 search radius for neighborhoods (in % of bbox diagonal)
    nb_smoothing_iterations unsigned int 1 number of smoothing iterations *
    nb_neighbors unsigned int 30 number of neighbors for estimating tangent plane *
  • Points/Reconstruction/reconstruct_surface_Poisson : Reconstructs a surface from points and normals using Misha Kahzdan s Screened Poisson Reconstruction.

    arg name type default value description
    reconstruction OGF::NewMeshGrobName reconstruction the name of the reconstructed surface
    depth unsigned int 8 the depth of the octree, 8 is the default value, use 10 or 11 for highly detailed models
  • Points/Reconstruction/reconstruct_surface_Delaunay2d : Reconstructs a surface from points using a 2D Delaunay triangulation. Can be used for Digital Elevation Models.

Sampling

  • Points/Sampling/sample_surface : Creates a pointset that samples a surface.

    arg name type default value description advanced
    points OGF::NewMeshGrobName points the created pointset
    copy_normals bool false if set, normals are copied from the surface
    nb_points unsigned int 30000 number of points
    Lloyd_iter unsigned int 5 number of Lloyd iterations for CVT. *
    Newton_iter unsigned int 30 number of Newton iterations for CVT. *
    Newton_m unsigned int 7 number of inner Newton iterations for CVT. *
  • Points/Sampling/sample_volume : Creates a pointset that samples a volume.

    arg name type default value description advanced
    points OGF::NewMeshGrobName points the created pointset
    nb_points unsigned int 30000 number of points
    Lloyd_iter unsigned int 5 number of Lloyd iterations for CVT. *
    Newton_iter unsigned int 30 number of Newton iterations for CVT. *
    Newton_m unsigned int 7 number of inner Newton iterations for CVT. *

Misc

  • Points/delete_selected_points : Delete all points marked as selection.

  • Points/create_vertex : Creates a new vertex at given coordinates.

    arg name type default value description
    x double N/A , y , z the coordinates of the point
    y double N/A N/A
    z double N/A N/A
    selected bool false if true, mark created vertex as selection

Surface

Repair

  • Surface/Repair/repair_surface : Tentatively fixes some defects in a surface

    arg name type default value description
    epsilon double 1e-06 Tolerance for merging vertices, in % of bbox diagonal.
    min_comp_area double 0.03 Minimum area of a connected component, in % of surface area
    max_hole_area double 0.001 Maximum area of holes to be filled, in % of surface area.
    max_hole_edges double 2000 Maximum number of edges in each hole to be filled.
    max_degree3_dist double 0 Maximum distance for removing degree 3 vertices, in % of bbox diagonal.
    remove_intersections bool false Tentatively remove self-intersections.
  • Surface/Repair/merge_vertices : Merges vertices that are at the same location or within tolerance

    arg name type default value description
    epsilon double 1e-06 Tolerance for merging vertices, in % of bbox diagonal.
  • Surface/Repair/expand_border : Preprocessing for remesh_feature_sensitive

    arg name type default value description
    margin double 0.05 margin to be added to borders, in % of bbox diagonal.
  • Surface/Repair/fill_holes : Fills the holes of the surface.

    arg name type default value description
    max_nb_vertices unsigned int 0 maximum number of vertices around a hole.
  • Surface/Repair/fix_facets_orientation : Fixes facets orientation based on computed visibility.

  • Surface/Repair/remove_invisible_facets : Removes all facets that have visibility smaller than a given threshold.

    arg name type default value description
    min_visibility double 0.005 minimum visibility to keep a facet

Remesh

  • Surface/Remesh/remesh_smooth : Remeshes a (smooth) surface.

    arg name type default value description advanced
    remesh_name OGF::NewMeshGrobName remesh name of the generated surface mesh.
    nb_points unsigned int 30000 desired number of points in the generated mesh.
    tri_shape_adapt double 1 adapt triangle shapes (0.0 means no shape adapation, 1.0 for moderate shape adaptation, ...)
    tri_size_adapt double 0 adapt triangle sizes (0.0 means no size adaptation, 1.0 for moderate size adaptation, ...)
    normal_iter unsigned int 3 number of normal smoothing iterations (if anisotropy is non-zero). *
    Lloyd_iter unsigned int 5 number of Lloyd iterations for CVT. *
    Newton_iter unsigned int 30 number of Newton iterations for CVT. *
    Newton_m unsigned int 7 number of inner Newton iterations for CVT. *
    LFS_samples unsigned int 10000 number of samples. used to compute gradation. *
  • Surface/Remesh/remesh_feature_sensitive : Remeshes a surface that has sharp features.

    arg name type default value description advanced
    surface_name OGF::NewMeshGrobName remesh name of the generated mesh.
    nb_points unsigned int 30000 desired number of points in the generated mesh.
    refine bool false refine border in order to lower Haussdorff distance.
    max_dist double 0.5 maximum distance to reference, as a fraction of generated mesh average edge length.
    normal_anisotropy double 5 determines how sharp features are taken into account. *
    nb_Lloyd_iter unsigned int 5 number of Lloyd iterations for CVT. *
    nb_Newton_iter unsigned int 30 number of Newton iterations for CVT. *
    nb_LpCVT_iter unsigned int 10 number of feature-sensitive iterations. *
    Newton_m unsigned int 7 number of inner Newton iterations for CVT. *
    RVC_centroids bool false use centroids of restricted Voronoi cells. *
  • Surface/Remesh/remesh_quad_dominant : Generates a quad-dominant mesh

    arg name type default value description
    surface_name OGF::NewMeshGrobName remesh name of the generated mesh.
    rel_edge_len double 1 relative edge length.
    sharp_features bool true true for CAD mesh, false otherwise
    optimize_parity bool false tentatively optimize parity.
    max_scaling_corr double 1 maximum scaling correction (use 1.0 to disable).
  • Surface/Remesh/decimate : Simplifies a surface using vertex clustering.

    arg name type default value description
    nb_bins unsigned int 100 the higher, the more detailed mesh.
    remove_deg3_vrtx bool true if true, remove degree 3 vertices
    keep_borders bool true if true, do not decimate vertices on the border
    repair bool true if true, repairs the mesh to remove non-manifold edges and borders

Boolean operations (experimental)

  • Surface/Boolean operations (experimental)/compute_union : Computes the union between two meshes.

    arg name type default value description
    other OGF::MeshGrobName N/A name of the other mesh
    result OGF::NewMeshGrobName result name of the result mesh
    pre_process bool false triangulate, inputs, remove small edges, make sure there is no intersection
    post_process bool true triangulate result, remove small edges, make sure there is no intersection
  • Surface/Boolean operations (experimental)/compute_intersection : Computes the intersection between two meshes.

    arg name type default value description
    other OGF::MeshGrobName N/A name of the other mesh
    result OGF::NewMeshGrobName result name of the result mesh
    pre_process bool false triangulate, inputs, remove small edges, make sure there is no intersection
    post_process bool true triangulate result, remove small edges, make sure there is no intersection
  • Surface/Boolean operations (experimental)/compute_difference : Computes the difference between two meshes.

    arg name type default value description
    other OGF::MeshGrobName N/A name of the other mesh
    result OGF::NewMeshGrobName result name of the result mesh
    pre_process bool false triangulate, inputs, remove small edges, make sure there is no intersection
    post_process bool true triangulate result, remove small edges, make sure there is no intersection

Misc

  • Surface/project_vertices_on_surface : Projects a mesh onto a surface

    arg name type default value description
    surface OGF::MeshGrobName N/A the name of the surface

Subdivision

  • Surface/Subdivision/split_triangles : Splits all the triangles of a simplicial mesh into four triangles.

    arg name type default value description
    nb_times unsigned int 1 number of times the triangles are split.
  • Surface/Subdivision/split_quads : Splits all the facets of a mesh into quads.

    arg name type default value description
    nb_times unsigned int 1 number of times the facets are split.
  • Surface/Subdivision/split_catmull_clark : Splits all the facets of a mesh into quads using Catmull-Clark subdivision.

    arg name type default value description
    nb_times unsigned int 1 number of times the facets are split.
  • Surface/Subdivision/tessellate_facets : Subdivides the facets until they have less than the specified number of vertices.

    arg name type default value description
    max_vertices_per_facet unsigned int 4 N/A
  • Surface/Subdivision/triangulate : Triangulates all the facets.

  • Surface/Subdivision/triangulate_center_vertex : Triangulates all the facets by inserting a vertex in the center of each facet.

Misc

  • Surface/smooth : Smooths the mesh by optimizing the vertices that are not selected. Selected vertices are locked.

Atlas

  • Surface/Atlas/make_texture_atlas : Computes texture coordinates of a surface.

    arg name type default value description
    unglue_sharp_edges bool true if true, ungle edegs with angle larger than threshold
    sharp_angles_threshold double 45 if the angle between the normals of two adjacent facets is larger than this threshold then the edge will be a chart boundary.
    param GEO::ChartParameterizer PARAM_ABF the algorithm used for parameterizing the charts. use ABF for best quality, or LSCM for faster result.
    pack GEO::ChartPacker PACK_TETRIS one of PACK_TETRIS, PACK_XATLAS
    verbose bool false if true, display statistics during atlas generation.
  • Surface/Atlas/pack_texture_space : Packs charts in texture space

    arg name type default value description
    pack GEO::ChartPacker PACK_TETRIS one of PACK_TETRIS, PACK_XATLAS
  • Surface/Atlas/parameterize_chart : Computes texture coordinates of a single unfoldable surface.

    arg name type default value description
    attribute std::string tex_coord the name of the attribute that will store texture coordinates.
    param GEO::ChartParameterizer PARAM_LSCM one of LSCM, SpectralLSCM, ABFplusplus.
    verbose bool false if true, display statistics during atlas generation.
  • Surface/Atlas/bake_normals : Bakes normals from a surface to the texture atlas.

    arg name type default value description
    surface OGF::MeshGrobName N/A the name of the mesh with normals to be baked. can be the current mesh or another one with higher-resolution normals.
    size unsigned int 1024 pixel-size of the generated normal map.
    image OGF::NewImageFileName normals.png filename of the generated normal map.
    nb_dilate unsigned int 2 number of dilations
    tex_coord std::string tex_coord the name of the facet corner attribute that stores texture coordinates.
  • Surface/Atlas/bake_colors : Bakes normals from a surface to the texture atlas.

    arg name type default value description
    surface OGF::MeshGrobName N/A the name of the mesh with colors to be baked. can be the current mesh or another one with higher-resolution.
    color std::string color the name of the attribute with the colors to be baked.
    size unsigned int 1024 pixel-size of the generated normal map.
    image OGF::NewImageFileName colors.png filename of the generated normal map.
    nb_dilate unsigned int 2 number of dilations
    attribute std::string tex_coord the name of the facet corner attribute that stores texture coordinates.

Shapes

  • Surface/Shapes/create_square : Creates a new square in the current mesh.

    arg name type default value description
    x1 double 0 N/A
    y1 double 0 N/A
    z1 double 0 N/A
    x2 double 1 N/A
    y2 double 0 N/A
    z2 double 0 N/A
    x3 double 1 N/A
    y3 double 1 N/A
    z3 double 0 N/A
    x4 double 0 N/A
    y4 double 1 N/A
    z4 double 0 N/A
  • Surface/Shapes/create_cube : Creates a new cube in the current mesh.

    arg name type default value description
    x1 double 0 N/A
    y1 double 0 N/A
    z1 double 0 N/A
    x2 double 1 N/A
    y2 double 1 N/A
    z2 double 1 N/A
  • Surface/Shapes/create_cylinder : Creates a new cylinder in the current mesh.

    arg name type default value description
    center GEO::vec3 0 0 0 N/A
    X_axis GEO::vec3 0.25 0 0 N/A
    Y_axis GEO::vec3 0 0.25 0 N/A
    Z_axis GEO::vec3 0 0 1 N/A
    precision unsigned int 10 N/A
  • Surface/Shapes/create_icosahedron : Creates a new icosahedron in the current mesh.

  • Surface/Shapes/create_sphere : Creates a mesh that approximates a sphere.

    arg name type default value description
    precision unsigned int 4 number of time the initial icosahedron is split (there are 20*4^precision triangles in the final mesh)
    radius double 1 N/A
    center GEO::vec3 0 0 0 N/A
  • Surface/Shapes/create_ngon : Creates a new ngon in the current mesh.

    arg name type default value description
    center GEO::vec3 0 0 0 N/A
    R double 1 N/A
    nb_edges unsigned int 6 N/A
    triangulate bool true N/A
  • Surface/Shapes/create_from_bounding_box : Creates a surfacic mesh from the bounding box of an object.

    arg name type default value description
    grob OGF::GrobName N/A the object
    nb_split unsigned int 0 the number of times the facets of the bounding box should be split into smaller quads.

Spectral

  • Surface/Spectral/compute_manifold_harmonics : Computes manifold harmonics (Laplacien eigenfunctions)

    arg name type default value description
    nb_eigens unsigned int 30 number of eigenfunctions to compute
    discretization GEO::LaplaceBeltramiDiscretization FEM_P1_LUMPED discretization of the Laplace Beltrami operator
    attribute std::string eigen name of the attribute used to store the eigenvectors
    shift double 0 eigen shift applied to explore a certain part of the spectrum.
    nb_eigens_per_band unsigned int 0 if non-zero, use band-by-band computation.
    print_spectrum bool false if true, prints eigenvalue to the terminal.

Volume

Misc

  • Volume/tet_meshing : Fills a closed surface mesh with tetrahedra, using tetgen.

    arg name type default value description
    preprocess bool true Tentatively fix degeneracies in the input mesh
    refine bool true Create additional vertices to improve quality.
    quality double 1 1.0 for high quality, 5.0 for low quality.
    verbose bool false enables tetgen statistics and messages.
    keep_regions bool false N/A
  • Volume/hex_dominant_meshing : Fills a closed mesh with hexaedra (+other cells).

    arg name type default value description advanced
    hexdom_name OGF::NewMeshGrobName hexes name of the generated mesh.
    nb_points unsigned int 30000 desired number of points in the generated mesh.
    prisms bool true generate prisms.
    pyramids bool true generate pyramids.
    border_refine bool false refine border in order to lower Haussdorff distance.
    border_max_dist double 0.2 maximum distance to reference, as a fraction of input mesh average edge length (TODO: check).
    min_normal_cos double 0.5 minimum angle cosine between two triangular faces merged into an hex face. *
    max_corner_cos double 0.6 maximum angle cosine at a quad corner. *
  • Volume/Voronoi_meshing : Generates a Voronoi mesh from a volume and points.

    arg name type default value description advanced
    voronoi OGF::NewMeshGrobName voronoi name of the generated Voronoi mesh
    nb_cells unsigned int 1000 number of Voronoi cells to generate
    simplification OGF::MeshGrobVolumeCommands::VoronoiSimplification simplify_tet_voro specifies how cells and faces should be simplified
    angle_threshold double 0.001 (in degrees) simplify boundary edges whenever their facets have normal angle smaller than threshold
    shrink double 0 optional shrink factor for displaying cells
    points OGF::NewMeshGrobName optional name of the pointset used to compute the Voronoi diagram *
    exact bool true if true, all intersection perdicates are evaluated with exact arithmetics and symbolic perturbations *
    tessellate_non_convex bool false N/A
    generate_ids bool true if true, generate ids in attributes. Necessary to output OVM files. *
    medial_axis bool false if true, generate an approximation of the medial axis (by removing facets from the computed mesh). *
  • Volume/volume_mesh_statistics : Computes and displays various statistics for a hex-dominant mesh.

    arg name type default value description
    save_histo bool false if true, save dihedral and facet angle histograms
    nb_bins unsigned int 100 number of bins in the computed histograms

Advanced

  • Volume/Advanced/tet_meshing_with_points : Creates a tetrahedral mesh from a closed surface mesh and a pointset, using tetgen. Initial closed surface is remeshed.

    arg name type default value description
    points OGF::MeshGrobName N/A a pointset that will be inserted into the generated tetrahedral mesh
    tetrahedra OGF::NewMeshGrobName tetrahedra the name of the generated tetrahedralized mesh
    refine_surface bool false if true, insert vertices until distance to
    max_distance double 0.2 maximum distance to original surface, as a proportion of average edge length of original surface
  • Volume/Advanced/tet2hex : Converts a tetrahedral mesh into a hexahedral dominant mesh by merging tetrahedra

    arg name type default value description advanced
    hexdom_name OGF::NewMeshGrobName hexes name of the generated mesh.
    prisms bool true generate prisms.
    pyramids bool true generate pyramids.
    min_normal_cos double 0.5 minimum angle cosine between two triangular faces merged into an hex face. *
    max_corner_cos double 0.6 maximum angle cosine at a quad corner. *
  • Volume/Advanced/remesh_tetrahedra : Extracts the boundary of the zone with tetrahedral cells and remeshes it using Tetgen.

    arg name type default value description
    quality double 0.5 1.0 for high quality, 5.0 for low quality.

Misc

  • Volume/display_volume : Displays the volume of a mesh.

  • Volume/compute_borders : Copies the border of the volume into the surfacic part of the mesh.

Mesh

  • Mesh/display_statistics : displays some statistics about the current mesh.

  • Mesh/display_topology : computes and displays some topological invariants.

  • Mesh/copy : Copies a mesh.

    arg name type default value description
    name std::string N/A name of the newly created mesh.
    edges bool true copy edges.
    facets bool true copy facets.
    cells bool true copy cells.
    attributes bool true copy attributes.
    kill_isolated_vx bool false if true, vertices that are no longer connected to anything are discarded.
  • Mesh/remove_mesh_elements : Remove mesh elements.

    arg name type default value description
    vertices bool false if set, removes everything !
    edges bool false remove all mesh edges.
    facets bool false remove all mesh facets.
    cells bool false remove all mesh cells.
    kill_isolated_vx bool false if true, vertices. that are no longer connected to anything are discarded.
  • Mesh/remove_isolated_vertices : Remove isolated vertices.

  • Mesh/normalize_mesh : Scales and translates a mesh to fit within a sphere.

    arg name type default value description
    Cx double 0 x coordinate of the center.
    Cy double 0 y coordinate of the center.
    Cz double 0 z coordinate of the center.
    radius double 1 radius of the bounding sphere.
  • Mesh/normalize_mesh_box : Scales and translates a mesh to fit within a box.

    arg name type default value description
    xmin double 0 , ymin , zmin, xmax , ymax, zmax extent of the box.
    ymin double 0 N/A
    zmin double 0 N/A
    xmax double 1 N/A
    ymax double 1 N/A
    zmax double 1 N/A
    uniform bool true if true, coordinates are scaled uniformly, else they are scaled to fit the box exactly.

selection

  • Mesh/selection/vertices/select_all_vertices : Selects all the vertices of the mesh.

  • Mesh/selection/vertices/unselect_all_vertices : Unselect all the vertices of the mesh.

  • Mesh/selection/vertices/invert_vertices_selection : Inverts vertices selection.

  • Mesh/selection/vertices/select_vertices_on_surface_border : Selects all the vertices on the border of a surface.

  • Mesh/selection/vertices/unselect_vertices_on_surface_border : Unselects all the vertices on the border of a surface.

  • Mesh/selection/vertices/delete_selected_vertices : Deletes the selected vertices

    arg name type default value description
    remove_isolated bool true if set, remove isolated vertices.
  • Mesh/selection/vertices/select_duplicated_vertices : Selects all the vertices that are duplicated in a mesh.

    arg name type default value description
    tolerance double 0 maximum distance for considering that two vertices are duplicated.

Attributes

Misc

  • Attributes/delete_attribute : Deletes an attribute.

    arg name type default value description
    name std::string N/A the name of the attribute, for instance vertices.distance

Vertices

  • Attributes/Vertices/compute_vertices_id : Stores the vertices ids in an attribute.

    arg name type default value description
    attribute std::string id the name of the vertex attribute
  • Attributes/Vertices/compute_distance_to_surface : Computes the distance between each vertex and a surface.

    arg name type default value description
    surface OGF::MeshGrobName N/A the surface
    attribute std::string distance the name of the vertex attribute
  • Attributes/Vertices/compute_local_feature_size : Computes the distance to an approximation of the medial axis of a surface.

    arg name type default value description
    surface OGF::MeshGrobName N/A a pointset that samples the surface
    attribute std::string lfs the name of the vertex attribute
  • Attributes/Vertices/compute_ambient_occlusion : Computes per-vertex ambient occlusion.

    arg name type default value description
    attribute std::string AO the name of the vertex attribute
    nb_rays_per_vertex unsigned int 100 number of rays used to sample directions. The higher, the more precise.
    nb_smoothing_iterations unsigned int 2 blur the result a little bit to hide sampling noise

Edges

  • Attributes/Edges/compute_edges_id : Stores the edges ids in an attribute.

    arg name type default value description
    attribute std::string id the name of the edge attribute

Facets

  • Attributes/Facets/compute_facets_id : Stores the facets ids in an attribute.

    arg name type default value description
    attribute std::string id the name of the facet attribute
  • Attributes/Facets/compute_facets_visibility : Computes facets visibility from random views.

    arg name type default value description
    nb_views unsigned int 1000 number of views
    dual_sided bool true if true, facets seen as backfacing count as negative.

Cells

  • Attributes/Cells/compute_cells_id : Stores the cells ids in an attribute.

    arg name type default value description
    attribute std::string id the name of the cell attribute

Misc

  • Attributes/copy_texture_colors : Copies colors from a textured surface.

    arg name type default value description
    surface OGF::MeshGrobName N/A the surface mesh
    texture OGF::ImageFileName N/A the texture image file
    copy_tex_coords bool false if true, copy tex coords in an additional attribute

Transport

Pre-processing

  • Transport/Pre-processing/align : Aligns two meshes before optimal transport.

    arg name type default value description
    target OGF::MeshGrobName N/A the name of the target mesh
    recenter bool true if true, recenter current on target
    rescale bool true if true, rescale current in such a way it has the same volume as the target
  • Transport/Pre-processing/set_density_by_formula : Creates varying densities for optimal transport.

    arg name type default value description
    density1 double 1 minimum value of the density
    density2 double 10 maximum value of the density
    function std::string sin^2 specification of the function to be used, in the form (+
    reference std::string if specified and func is dist , distance is computed relative to this surface, else it is computed relative to the current surface
  • Transport/Pre-processing/create_regular_sampling : Creates a regular sampling of the current object.

    arg name type default value description
    sampling OGF::NewMeshGrobName points the name of the created object
    nb unsigned int 30 the number of samples per axis
  • Transport/Pre-processing/perturb : Applies a random perturbation to all the vertices of a mesh.

    arg name type default value description
    howmuch double N/A the magnitude of the perturbation
  • Transport/Pre-processing/init_Euler : Moves points to barycenters of Laguerre cells

    arg name type default value description
    omega OGF::MeshGrobName N/A name of the domain
    mode OGF::MeshGrobTransportCommands::EulerMode N/A one of EULER_2D, EULER_3D, EULER_ON_SURFACE
    air_particles OGF::NewMeshGrobName N/A
    fluid_omega0 OGF::NewMeshGrobName N/A
  • Transport/Pre-processing/get_density : Computes the density given by mass attribute and domain volume.

    arg name type default value description
    domain OGF::MeshGrobName N/A N/A
  • Transport/Pre-processing/set_density : Sets point masses from specified density and domain volume

    arg name type default value description
    domain OGF::MeshGrobName N/A N/A
    density double N/A N/A
  • Transport/Pre-processing/append_points : Append points and mass attribute

    arg name type default value description
    points OGF::MeshGrobName N/A N/A
  • Transport/Pre-processing/shell_mesh : Generates a volumetric mesh that fills the space between the current mesh and an external shell.

    arg name type default value description
    shell OGF::MeshGrobName N/A the shell
    inner_density double 1 density inside the object
    outer_density_max double 1 density on the part of the generated mesh that touches the object
    outer_density_min double 0.1 density on the part of the generated mesh that is furthest away from the object
    gamma double 10 exponent applied to the density
    shell_only bool false if set, do not generate tetrahedra inside the current mesh.
  • Transport/Pre-processing/crop_domain : Keeps only the mesh elements that are inside a certain domain.

    arg name type default value description
    domain OGF::MeshGrobName omega the name of the domain mesh.
  • Transport/Pre-processing/crop_region : Keeps only the mesh elements that are inside a certain region.

    arg name type default value description
    xmin double 0 N/A
    ymin double 0 N/A
    zmin double 0 N/A
    xmax double 1 N/A
    ymax double 1 N/A
    zmax double 1 N/A
    cell_center bool true if true, cells that have their centers in the region are kept, else only cells fully included in the region are kept.
    per_vertices bool false if true, vertices that are outside the region are deleted, as well as all mesh elements incident to them.
  • Transport/Pre-processing/sample_regions : Samples the different regions of a volumetric mesh with points.

    arg name type default value description
    points std::string points the name of the created pointset.
    total_nb_points unsigned int 30000 total number of points.
    region1_mass double 0.001 , region2_mass , region3_mass masses of the points in the different regions. Leave 0 for regions with no points.
    region2_mass double 1 N/A
    region3_mass double 0 N/A
    region4_mass double 0 N/A
    region5_mass double 0 N/A
  • Transport/Pre-processing/inflate : Inflates a mesh to encompass a given pointset

    arg name type default value description
    points OGF::MeshGrobName points N/A
    R0 double 0 N/A
    R1 double 0 N/A
    nb_rings unsigned int 0 N/A

Compute

  • Transport/Compute/transport_3d : Computes the optimal transport between this volumetric mesh and another one.

    arg name type default value description advanced
    target OGF::MeshGrobName N/A name of the target volumetric mesh
    nb_points unsigned int 10000 number of points to be created to sample the target
    proj_border bool true if true, points near the border are projected onto the boundary of the target
    result OGF::NewMeshGrobName morph name of the computed morphing
    Newton bool false if true use Newton solver
    sampling OGF::NewMeshGrobName (optional) name of the computed target sampling *
    singular_set OGF::NewMeshGrobName (optional) compute the discontinuities *
    regularization double 0 (optional) if non-zero, add regularization *
    BRIO bool true if true, use Biased Random Insertion Order [Amenta et.al] *
    multilevel bool true if true, use multilevel sampling (note: BRIO implies multilevel) *
    ratio double 0.125 ratio between the sizes of two sucessive levels *
    nb_iter unsigned int 1000 maximum number of iterations *
    epsilon double 0.01 maximum relative measure error in a cell *
    linsolve_nb_iter unsigned int 1000 the maximum number of iterations for linear solves *
    linsolve_epsilon double 0.001 the maximum value of *
    save_RVD_iter bool false if true, save all iterations *
    show_RVD_center bool false if true and savev_RVD_iter, shows center of cells attached to cells *
    save_last_iter bool false if true, save only last iteration *
  • Transport/Compute/early_universe_reconstruction : Computes Early Universe Reconstruction.

    arg name type default value description
    points OGF::MeshGrobName N/A the pointset
    scaling_factor double 10 multiply all coordinates to improve stability
    Newton_epsilon double 1e-10 maximum relative measure error in a cell
    max_Newton_iter unsigned int 20 maximum number of Newton iterations
    linesearch_init_iter unsigned int 10 first iteration for linesearch
    max_linesearch_iter unsigned int 20 maximum number of line search iterations
    linsolve_epsilon double 0.01 tolerance for linear solve
    max_linsolve_iter unsigned int 1000 maximum number of linear solve iterations
    regularization double 0 (optional) if non-zero, add regularization
  • Transport/Compute/isoarea_Laguerre_2d : Computes a Laguerre diagram where the cells have all the same areas

    arg name type default value description advanced
    points OGF::NewMeshGrobName points the generated pointset
    laguerre OGF::NewMeshGrobName Laguerre the generated Laguerre diagram
    air OGF::NewMeshGrobName an optional pointset with air particles
    air_fraction double 0.5 if air is specified, fraction of total surface occupied by air particles
    surface3D bool false true if the surface is 3D, else 2D
    nb_points unsigned int 1000 number of points
    nb_iter unsigned int 1000 number of Newton iterations *
    epsilon double 0.01 maximum relative measure error in a cell *
    regul double 0.001 regularization term *
    solver GEO::OTLinearSolver OT_PRECG one of OT_PRECG, OT_SUPERLU, OT_CHOLMOD *
  • Transport/Compute/symmetric_transport_3d : Computes symetrized semi-discrete transport between two objects.

    arg name type default value description
    other OGF::MeshGrobName N/A the other object
    nb_points unsigned int 10000 number of points
    thissampling OGF::NewMeshGrobName points1 sampling of this object
    othersampling OGF::NewMeshGrobName points2 sampling of the other object
    nb_iter unsigned int 4 number of symmetric transport iterations
  • Transport/Compute/Euler2d : Performs one step of incompressible Euler simulation in 2d

    arg name type default value description advanced
    omega OGF::MeshGrobName N/A the volumetric mesh with the domain
    tau double 0.001 time step *
    epsilon double 0.004 should be smaller than tau *
    g double 10 gravity *
    nb_iter unsigned int 1 number of time steps
    save_every unsigned int 0 save object every nnn *
    first_iter unsigned int 0 number of the first iteration, used to name files correctly when doing multiple runs *
    show_RVD bool false show Laguerre diagram
    show_centroids bool false show centroids
    verbose bool false if set, displays status messages during optimization. *
    project_every unsigned int 0 if non-zero, relocate each point to the barycenter of its cell every nnn interations. *
    air_particles OGF::NewMeshGrobName pointset with air particles if any *
    fluid_omega0 OGF::NewMeshGrobName initial domain occupied by the fluid if any *
    physical bool true if true, then update using Newton second law, else update as in initial article. true if using F=ma, else uses F=a *
    no_transport bool false if true, just use non-optimized Voronoi diagram *
  • Transport/Compute/Euler3d : Performs one step of incompressible Euler simulation in 3d

    arg name type default value description advanced
    omega OGF::MeshGrobName N/A the volumetric mesh with the domain
    tau double 0.001 time step *
    epsilon double 0.004 should be smaller than tau *
    g double 10 gravity *
    nb_iter unsigned int 1 number of time steps
    save_every unsigned int 0 save object every nnn *
    first_iter unsigned int 0 number of the first iteration, used to name files correctly when doing multiple runs *
    compute_interface bool false if set, compute the interface between fluides of different densities
    split_interface bool false if set, apply two steps of Catmull-Clark subdivision to the interface, to make it smoother
    verbose bool true if set, messages are displayed during optimization. *
    project_every unsigned int 0 if non-zero, relocate each point to the barycenter of its cell every nnn interations. *
    physical bool true if true, then update using Newton second law, else update as in initial article. *
  • Transport/Compute/Euler_on_surface : Performs one step of incompressible Euler simulation on surface

    arg name type default value description advanced
    omega OGF::MeshGrobName N/A the surfacic mesh with the domain
    tau double 0.001 time step *
    epsilon double 0.004 should be smaller than tau *
    g double 10 gravity *
    nb_iter unsigned int 1 number of time steps
    compute_RVD bool false show Laguerre diagram
    verbose bool false if set, messages are displayed during optimization. *
    project_every unsigned int 0 if non-zero, relocate each point to the barycenter of its cell every nnn interations. *
    physical bool true if true, then update using Newton second law, else update as in initial article. *
  • Transport/Compute/optimize_VSDM : Fits a surface to another one using Voronoi Squared Distance Metric algorithm.

    arg name type default value description
    affinity double 1 the higher, the smoother
    nb_iter unsigned int 30 number of iterations
    grid OGF::MeshGrobName grid the object to be fitted or control mesh of subd surface
    nb_subd unsigned int 0 number of subdivision
    subd OGF::NewMeshGrobName subd computed subdivision surface (if nb_subd different from 0)

Post-processing

  • Transport/Post-processing/copy_t0 : Copies coordinates of another mesh into a t0 vector attribute.

    arg name type default value description
    t0_mesh std::string N/A the name of the mesh with geometry at t0 to be copied. Needs to have the same number of vertices as this mesh.
  • Transport/Post-processing/compute_velocity : Computes velocities from speed vectors.

    arg name type default value description
    velocity std::string v name of the attribute where to store velocities.
    speed_vector std::string V name of the attribute with speed vectors (dim 3 vector attribute)
  • Transport/Post-processing/compute_interface : In a Euler simulation, compute the interface between the two liquides.

    arg name type default value description
    domain OGF::MeshGrobName omega the name of the mesh with the domain.
    interface OGF::NewMeshGrobName interface the name of the mesh where to store the interface.
    clip_region OGF::NewMeshGrobName N/A
    primal bool false if true, then interface is computed by marching-tetrahedra from the primal 3d triangulation, else it is computed from the power diagram.
  • Transport/Post-processing/smooth_interface : Smoothes a surface by moving the points to the centroids of their neighbors.

  • Transport/Post-processing/compute_dual_surface_mesh : Computes the dual of a surface mesh.

    arg name type default value description
    dual OGF::NewMeshGrobName dual the name of the created dual surface mesh.
    triangulate bool false if true, triangulate the facets
  • Transport/Post-processing/export_to_Cyril_Crassin_raw : Exports a mesh in raw format to be used with Cyril Crassin s tools.

    arg name type default value description
    basename std::string out N/A
  • Transport/Post-processing/extract_initial_and_final : Extracts initial and final pointsets from an animated pointset.

    arg name type default value description
    now OGF::NewMeshGrobName EUR_now N/A
    initial OGF::NewMeshGrobName EUR_initial N/A
    wrap_coords bool false N/A
    correct_origin bool false N/A
    nb_per_axis unsigned int 256 N/A
  • Transport/Post-processing/EUR_scatter_plot : Creates a scatter plot datafile for evaluating Early Universe Reconstruction quality.

    arg name type default value description
    filename OGF::NewFileName scatter.dat N/A
    nb_per_axis unsigned int 256 N/A
  • Transport/Post-processing/select_chart : Selects a chart

    arg name type default value description
    chart_attribute std::string chart N/A
    selection std::string selection N/A
    chart unsigned int 0 N/A
  • Transport/Post-processing/translate : Translates mesh by vector.

    arg name type default value description
    tx double 0 N/A
    ty double 0 N/A
    tz double 0 N/A
  • Transport/Post-processing/EUR_normalize_periodic_coordinates : Set coordinates between 0 and 1 for reconstructed pointsets with boundary conditions.

  • Transport/Post-processing/copy_attribute_to_geometry : Copies a vertex attribute to geometry

    arg name type default value description
    attribute std::string N/A N/A
  • Transport/Post-processing/copy_point_colors : Copies colors from the point with the same index in another object

    arg name type default value description
    from OGF::MeshGrobName N/A the object from which colors are copied
  • Transport/Post-processing/copy_nearest_point_colors : Copies colors from the nearest point of another object

    arg name type default value description
    from OGF::MeshGrobName N/A the object from which colors are copied
  • Transport/Post-processing/normalize_transported_volume : Resizes the warped mesh in such a way it has the same volume as the initial condition.

Advection

  • Transport/Advection/advect : Applies a velocity field to a mesh.

    arg name type default value description
    field OGF::velocity_field_t N/A N/A
    t0 double 0
    dt double 0.01 N/A
    nb_timesteps double 1 N/A
    integrator OGF::time_integrator_t SIMPLE N/A
    save_timesteps bool false N/A

Misc

  • Transport/Misc/save_normals : Save mesh normals to C format.

  • Transport/Misc/show_Hilbert_curve : show hilbert curve.

    arg name type default value description
    dimension unsigned int 2 N/A
  • Transport/Misc/export_points_and_attribute : export point set and attribute in xyzw format

    arg name type default value description
    attribute_name std::string N/A N/A
    file_name OGF::NewFileName N/A N/A

Martingale

  • Transport/Martingale/init_martingale

    arg name type default value description
    points OGF::NewMeshGrobName points N/A
    laguerre OGF::NewMeshGrobName Laguerre N/A
    centroids OGF::NewMeshGrobName centroids N/A
    nb_points unsigned int 10 N/A
    use_exact_predicates bool true N/A
  • Transport/Martingale/recenter_martingale : Computes a martingale transport in 2d by iteratively relocating the Dirac masses at the barycenters

    arg name type default value description
    points OGF::MeshGrobName points the generated pointset
    laguerre OGF::MeshGrobName Laguerre the generated Laguerre diagram
    centroids OGF::MeshGrobName centroids the centroids of the Laguerre cells
    nb_iter unsigned int 1 N/A
    use_exact_predicates bool true N/A