Plugins
remeshing_tools.h File Reference

Go to the source code of this file.

Namespaces

 ug
 
 ug::promesh
 

Macros

#define TOOLTIP_ADAPT_SURFACE_TO_CYLINDER   "Introduces edges in a grid around a selected vertex which roughly correspond to the intersection of a cylinder with the surface."
 
#define TOOLTIP_ADJUST_EDGE_LENGTH   "Remeshes the active grid so that all edges approximatly have a certain length."
 
#define TOOLTIP_ASSIGN_VOLUME_CONSTRAINTS   "Assigns volume constraints to selected tetrahedra."
 
#define TOOLTIP_CLEAR_VOLUME_CONSTRAINTS   "Clears all assigned volume constraints."
 
#define TOOLTIP_CONVERT_TO_QUADRILATERALS   "Converts selected triangles or triangles connected by selected edges to quadrilaterals."
 
#define TOOLTIP_CONVERT_TO_TETRAHEDRA   "Converts selected volume elements to tetrahedra."
 
#define TOOLTIP_CONVERT_TO_TRIANGLES   "Converts selected quadrilaterals to triangles."
 
#define TOOLTIP_CREATE_SHRINK_GEOMETRY   "Creates new elements from existing ones, providing each with a unique set of corner vertices. Those corners are scaled towards the center using the given scale-parameter."
 
#define TOOLTIP_CSG_FACE_DIFFERENCE   "Performs a difference operation on the geometry of the two specifed subsets. IMPORTANT: Both subsets have to be closed manifolds, i.e., homeomorphic to the sphere."
 
#define TOOLTIP_CSG_FACE_INTERSECTION   "Performs an intersection operation on the geometry of the two specifed subsets. IMPORTANT: Both subsets have to be closed manifolds, i.e., homeomorphic to the sphere."
 
#define TOOLTIP_CSG_FACE_UNION   "Performs a union operation on the geometry of the two specifed subsets. IMPORTANT: Both subsets have to be closed manifolds, i.e., homeomorphic to the sphere."
 
#define TOOLTIP_DUPLICATE   "Duplicates the selected geometry."
 
#define TOOLTIP_EXTRUDE_ALONG_NORMAL   "Extrudes selected geometry (vertices, edges, faces) and moves new vertices along their normal."
 
#define TOOLTIP_EXTRUDE_AND_MOVE   "Extrudes selected geometry (vertices, edges, faces) and moves new vertices by the specified offset."
 
#define TOOLTIP_EXTRUDE_AND_SCALE   "Extrudes selected geometry (vertices, edges, faces) and scales new vertices by the specified scale."
 
#define TOOLTIP_EXTRUDE_CYLINDERS   "Extrudes cylinders around selected points of a 2d manifold."
 
#define TOOLTIP_EXTRUDE_FACES_WITH_TETS   "Experimental function to create 'plaque'-like geometry based on extruding faces with tetrahedra."
 
#define TOOLTIP_EXTRUDE_LAYERS   "Creates volumes for a given stack of raster-layers and an initial triangulation of the surface."
 
#define TOOLTIP_EXTRUDE_LAYERS_AND_ADD_PROJECTOR   "Creates volumes for a given stack of raster-layers and an initial triangulation of the surface. It also generates a raster-based refinement-projector for the whole geometry."
 
#define TOOLTIP_EXTRUDE_TO_TICKNESS   "Extrudes selected geometry (vertices, edges, faces) and moves new vertices so that created elements have the specified thickness."
 
#define TOOLTIP_MESH_LAYER_BOUNDARIES   "Creates boundary grids for the given raster-layers"
 
#define TOOLTIP_MESH_LAYERS   "Creates triangle/quadrilateral grids for the given raster-layers"
 
#define TOOLTIP_PROJECT_TO_LAYER   "Projects a (surface-)mesh to the specified raster-layer. Only height values in valid regions are adjusted."
 
#define TOOLTIP_PROJECT_TO_TOP_LAYER   "Projects a (surface-)mesh to the top-layer of the specified raster-stack. Only height values in valid regions are adjusted."
 
#define TOOLTIP_REPLACE_LOW_VALENCE_VERTICES   "Replaces selected valence-3 and valence-4 vertices by triangles, if the curvature of associated triangles is low"
 
#define TOOLTIP_REPLACE_VALENCE_3_VERTICES   "Replaces selected valence-3 vertices by triangles, if the curvature of associated triangles is low"
 
#define TOOLTIP_RETETRAHEDRALIZE   "Given a tetrahedralization and volume constraints, this method adapts the tetrahedra using TetGen."
 
#define TOOLTIP_RETRIANGULATE   "Inserts vertices as required and performs Constrained Delaunay triangulation."
 
#define TOOLTIP_SIMPLIFY_POLYLINES   "Removes vertices from the selected polyline which have a smaller curvature than the specified angle."
 
#define TOOLTIP_SIMPLIFY_SMOOTHED_POLYLINES   "Removes vertices from the selected polyline which have a smaller smoothed curvature than the specified angle."
 
#define TOOLTIP_SNAP_TO_HORIZONTAL_RASTER   "Snaps all vertices of the given (surface) grid horizontally to the closest raster-node."
 
#define TOOLTIP_TETRAHEDRALIZE   "Fills a closed surface with tetrahedra using TetGen."
 
#define TOOLTIP_TRIANGLE_FILL   "Performs triangle fill using the sweep-line algorithm followed by an optional Constrained Delaunay retriangulation."
 

Enumerations

enum  ug::promesh::CSGOperation { ug::promesh::CSG_UNION , ug::promesh::CSG_INTERSECTION , ug::promesh::CSG_DIFFERENCE }
 

Functions

void ug::promesh::AdaptSurfaceToCylinder (Mesh *obj, number radius, number threshold)
 
void ug::promesh::AdjustEdgeLength (Mesh *obj, number minEdgeLen, number maxEdgeLen, int numIterations, bool adaptive, bool automarkBoundaries)
 
void ug::promesh::AdjustEdgeLengthExtended (Mesh *obj, number minEdgeLen, number maxEdgeLen, number approximation, number triQuality, int numIterations, bool automarkBoundaries)
 
void ug::promesh::AssignVolumeConstraints (Mesh *obj, number volConstraint)
 
void ug::promesh::ClearVolumeConstraints (Mesh *obj)
 
void ug::promesh::ConvertToQuadrilaterals (Mesh *obj)
 
void ug::promesh::ConvertToTetrahedra (Mesh *obj)
 
void ug::promesh::ConvertToTriangles (Mesh *obj)
 
template<class TElemIter >
void ug::promesh::CreateShrinkElements (Mesh *obj, number scale, TElemIter elemsBegin, TElemIter elemsEnd)
 
void ug::promesh::CreateShrinkGeometry (Mesh *obj, number scale)
 
void ug::promesh::CSGFaceDifference (Mesh *obj, int subsetIndex0, int subsetIndex1, number snapThreshold)
 
void ug::promesh::CSGFaceIntersection (Mesh *obj, int subsetIndex0, int subsetIndex1, number snapThreshold)
 
void ug::promesh::CSGFaceOperation (Mesh *obj, CSGOperation op, int subsetIndex0, int subsetIndex1, number snapThreshold)
 
void ug::promesh::CSGFaceUnion (Mesh *obj, int subsetIndex0, int subsetIndex1, number snapThreshold)
 
void ug::promesh::Duplicate (Mesh *obj, const vector3 &offset, bool deselectOld, bool selectNew)
 
void ug::promesh::ExtrudeAlongNormal (Mesh *obj, number totalLength, int numSteps, bool createFaces, bool createVolumes)
 
void ug::promesh::ExtrudeAndMove (Mesh *obj, const vector3 &totalDir, int numSteps, bool createFaces, bool createVolumes)
 
void ug::promesh::ExtrudeAndScale (Mesh *obj, number totalScale, bool scaleAroundPivot, int numSteps, bool createFaces, bool createVolumes)
 
void ug::promesh::ExtrudeCylinders (Mesh *obj, number height, number radius, number snapThreshold)
 
void ug::promesh::ExtrudeFacesWithTets (Mesh *obj, int fromSi, int toSi, const number factor)
 
void ug::promesh::ExtrudeLayers (Mesh *obj, RasterLayers &layers, bool allowForTetsAndPyras)
 
void ug::promesh::ExtrudeLayersAndAddProjector (Mesh *obj, SPRasterLayers layers, bool allowForTetsAndPyras)
 
void ug::promesh::ExtrudeToThickness (Mesh *obj, number thickness, int numSteps, bool createFaces, bool createVolumes)
 
void ug::promesh::MeshLayerBoundaries (Mesh *m, const RasterLayers &layers)
 
void ug::promesh::MeshLayers (Mesh *m, const RasterLayers &layers)
 
void ug::promesh::ProjectToLayer (Mesh *obj, RasterLayers &layers, int layerIndex)
 
void ug::promesh::ProjectToTopLayer (Mesh *obj, RasterLayers &layers)
 
void ug::promesh::ReplaceLowValenceVertices (Mesh *obj, number maxSquaredHeightToBaseAreaRatio)
 
void ug::promesh::ReplaceValence3Vertices (Mesh *obj, number maxSquaredHeightToBaseAreaRatio)
 
void ug::promesh::Retetrahedralize (Mesh *obj, number quality, bool preserveOuter, bool preserveAll, bool applyVolumeConstraint, int verbosity)
 
void ug::promesh::Retriangulate (Mesh *obj, number minAngle)
 
void ug::promesh::SimplifyPolylines (Mesh *m, number curvatureThreshold)
 
void ug::promesh::SimplifySmoothedPolylines (Mesh *m, number curvatureThreshold, number smoothingAlpha, int smoothingIterations)
 
void ug::promesh::SnapToHorizontalRaster (Mesh *obj, SPRasterLayers layers)
 
void ug::promesh::Tetrahedralize (Mesh *obj, number quality, bool preserveOuter, bool preserveAll, bool separateVolumes, bool appendSubsetsAtEnd, int verbosity)
 
void ug::promesh::TriangleFill (Mesh *obj, bool qualityGeneration, number minAngle, int si)
 

Macro Definition Documentation

◆ TOOLTIP_ADAPT_SURFACE_TO_CYLINDER

#define TOOLTIP_ADAPT_SURFACE_TO_CYLINDER   "Introduces edges in a grid around a selected vertex which roughly correspond to the intersection of a cylinder with the surface."

◆ TOOLTIP_ADJUST_EDGE_LENGTH

#define TOOLTIP_ADJUST_EDGE_LENGTH   "Remeshes the active grid so that all edges approximatly have a certain length."

◆ TOOLTIP_ASSIGN_VOLUME_CONSTRAINTS

#define TOOLTIP_ASSIGN_VOLUME_CONSTRAINTS   "Assigns volume constraints to selected tetrahedra."

◆ TOOLTIP_CLEAR_VOLUME_CONSTRAINTS

#define TOOLTIP_CLEAR_VOLUME_CONSTRAINTS   "Clears all assigned volume constraints."

◆ TOOLTIP_CONVERT_TO_QUADRILATERALS

#define TOOLTIP_CONVERT_TO_QUADRILATERALS   "Converts selected triangles or triangles connected by selected edges to quadrilaterals."

◆ TOOLTIP_CONVERT_TO_TETRAHEDRA

#define TOOLTIP_CONVERT_TO_TETRAHEDRA   "Converts selected volume elements to tetrahedra."

◆ TOOLTIP_CONVERT_TO_TRIANGLES

#define TOOLTIP_CONVERT_TO_TRIANGLES   "Converts selected quadrilaterals to triangles."

◆ TOOLTIP_CREATE_SHRINK_GEOMETRY

#define TOOLTIP_CREATE_SHRINK_GEOMETRY   "Creates new elements from existing ones, providing each with a unique set of corner vertices. Those corners are scaled towards the center using the given scale-parameter."

◆ TOOLTIP_CSG_FACE_DIFFERENCE

#define TOOLTIP_CSG_FACE_DIFFERENCE   "Performs a difference operation on the geometry of the two specifed subsets. IMPORTANT: Both subsets have to be closed manifolds, i.e., homeomorphic to the sphere."

◆ TOOLTIP_CSG_FACE_INTERSECTION

#define TOOLTIP_CSG_FACE_INTERSECTION   "Performs an intersection operation on the geometry of the two specifed subsets. IMPORTANT: Both subsets have to be closed manifolds, i.e., homeomorphic to the sphere."

◆ TOOLTIP_CSG_FACE_UNION

#define TOOLTIP_CSG_FACE_UNION   "Performs a union operation on the geometry of the two specifed subsets. IMPORTANT: Both subsets have to be closed manifolds, i.e., homeomorphic to the sphere."

◆ TOOLTIP_DUPLICATE

#define TOOLTIP_DUPLICATE   "Duplicates the selected geometry."

◆ TOOLTIP_EXTRUDE_ALONG_NORMAL

#define TOOLTIP_EXTRUDE_ALONG_NORMAL   "Extrudes selected geometry (vertices, edges, faces) and moves new vertices along their normal."

◆ TOOLTIP_EXTRUDE_AND_MOVE

#define TOOLTIP_EXTRUDE_AND_MOVE   "Extrudes selected geometry (vertices, edges, faces) and moves new vertices by the specified offset."

◆ TOOLTIP_EXTRUDE_AND_SCALE

#define TOOLTIP_EXTRUDE_AND_SCALE   "Extrudes selected geometry (vertices, edges, faces) and scales new vertices by the specified scale."

◆ TOOLTIP_EXTRUDE_CYLINDERS

#define TOOLTIP_EXTRUDE_CYLINDERS   "Extrudes cylinders around selected points of a 2d manifold."

◆ TOOLTIP_EXTRUDE_FACES_WITH_TETS

#define TOOLTIP_EXTRUDE_FACES_WITH_TETS   "Experimental function to create 'plaque'-like geometry based on extruding faces with tetrahedra."

◆ TOOLTIP_EXTRUDE_LAYERS

#define TOOLTIP_EXTRUDE_LAYERS   "Creates volumes for a given stack of raster-layers and an initial triangulation of the surface."

◆ TOOLTIP_EXTRUDE_LAYERS_AND_ADD_PROJECTOR

#define TOOLTIP_EXTRUDE_LAYERS_AND_ADD_PROJECTOR   "Creates volumes for a given stack of raster-layers and an initial triangulation of the surface. It also generates a raster-based refinement-projector for the whole geometry."

◆ TOOLTIP_EXTRUDE_TO_TICKNESS

#define TOOLTIP_EXTRUDE_TO_TICKNESS   "Extrudes selected geometry (vertices, edges, faces) and moves new vertices so that created elements have the specified thickness."

◆ TOOLTIP_MESH_LAYER_BOUNDARIES

#define TOOLTIP_MESH_LAYER_BOUNDARIES   "Creates boundary grids for the given raster-layers"

◆ TOOLTIP_MESH_LAYERS

#define TOOLTIP_MESH_LAYERS   "Creates triangle/quadrilateral grids for the given raster-layers"

◆ TOOLTIP_PROJECT_TO_LAYER

#define TOOLTIP_PROJECT_TO_LAYER   "Projects a (surface-)mesh to the specified raster-layer. Only height values in valid regions are adjusted."

◆ TOOLTIP_PROJECT_TO_TOP_LAYER

#define TOOLTIP_PROJECT_TO_TOP_LAYER   "Projects a (surface-)mesh to the top-layer of the specified raster-stack. Only height values in valid regions are adjusted."

◆ TOOLTIP_REPLACE_LOW_VALENCE_VERTICES

#define TOOLTIP_REPLACE_LOW_VALENCE_VERTICES   "Replaces selected valence-3 and valence-4 vertices by triangles, if the curvature of associated triangles is low"

◆ TOOLTIP_REPLACE_VALENCE_3_VERTICES

#define TOOLTIP_REPLACE_VALENCE_3_VERTICES   "Replaces selected valence-3 vertices by triangles, if the curvature of associated triangles is low"

◆ TOOLTIP_RETETRAHEDRALIZE

#define TOOLTIP_RETETRAHEDRALIZE   "Given a tetrahedralization and volume constraints, this method adapts the tetrahedra using TetGen."

◆ TOOLTIP_RETRIANGULATE

#define TOOLTIP_RETRIANGULATE   "Inserts vertices as required and performs Constrained Delaunay triangulation."

◆ TOOLTIP_SIMPLIFY_POLYLINES

#define TOOLTIP_SIMPLIFY_POLYLINES   "Removes vertices from the selected polyline which have a smaller curvature than the specified angle."

◆ TOOLTIP_SIMPLIFY_SMOOTHED_POLYLINES

#define TOOLTIP_SIMPLIFY_SMOOTHED_POLYLINES   "Removes vertices from the selected polyline which have a smaller smoothed curvature than the specified angle."

◆ TOOLTIP_SNAP_TO_HORIZONTAL_RASTER

#define TOOLTIP_SNAP_TO_HORIZONTAL_RASTER   "Snaps all vertices of the given (surface) grid horizontally to the closest raster-node."

◆ TOOLTIP_TETRAHEDRALIZE

#define TOOLTIP_TETRAHEDRALIZE   "Fills a closed surface with tetrahedra using TetGen."

◆ TOOLTIP_TRIANGLE_FILL

#define TOOLTIP_TRIANGLE_FILL   "Performs triangle fill using the sweep-line algorithm followed by an optional Constrained Delaunay retriangulation."