|
| ~Mesh2D () override=default |
| Default destructor.
|
|
| Mesh2D () |
| Default constructor.
|
|
| Mesh2D (Projection projection) |
| Construct a mesh2d using only the projection. More...
|
|
| Mesh2D (const std::vector< Edge > &edges, const std::vector< Point > &nodes, Projection projection) |
| Construct a mesh2d starting from the edges and nodes. More...
|
|
| Mesh2D (const std::vector< Edge > &edges, const std::vector< Point > &nodes, const std::vector< std::vector< UInt >> &faceNodes, const std::vector< UInt > &numFaceNodes, Projection projection) |
| Construct a mesh2d from face nodes and num face nodes. More...
|
|
| Mesh2D (const std::vector< Point > &nodes, const Polygons &polygons, Projection projection) |
| Create triangular grid from nodes (triangulatesamplestonetwork) More...
|
|
void | Administrate (CompoundUndoAction *undoAction=nullptr) override |
| Perform complete administration.
|
|
void | ComputeCircumcentersMassCentersAndFaceAreas (bool computeMassCenters=false) |
| Compute face circumcenters.
|
|
void | FindFaces () |
| Constructs the face nodes mapping, face mass centers and areas.
|
|
void | FindFacesGivenFaceNodesMapping (const std::vector< std::vector< UInt >> &faceNodes, const std::vector< UInt > &numFaceNodes) |
| Find remaining face information given the face nodes mapping. More...
|
|
std::unique_ptr< SphericalCoordinatesOffsetAction > | OffsetSphericalCoordinates (double minx, double maxx) |
| Offset the x coordinates if m_projection is spherical. More...
|
|
void | CommitAction (const SphericalCoordinatesOffsetAction &undoAction) |
| Apply the coordinate offset action.
|
|
void | RestoreAction (const SphericalCoordinatesOffsetAction &undoAction) |
| Undo the coordinate offset action. More...
|
|
void | ComputeFaceClosedPolygonWithLocalMappings (UInt faceIndex, std::vector< Point > &polygonNodesCache, std::vector< UInt > &localNodeIndicesCache, std::vector< UInt > &globalEdgeIndicesCache) const |
| For a face create a closed polygon and fill local mapping caches (get_cellpolygon) More...
|
|
void | ComputeFaceClosedPolygon (UInt faceIndex, std::vector< Point > &polygonNodesCache) const |
| For a face create a closed polygon. More...
|
|
Point | ComputeFaceCircumenter (std::vector< Point > &polygon, const std::vector< UInt > &edgesNumFaces) const |
| For a closed polygon, compute the circumcenter of a face (getcircumcenter) More...
|
|
std::vector< Point > | GetObtuseTrianglesCenters () |
| Gets the mass centers of obtuse triangles. More...
|
|
std::vector< UInt > | GetEdgesCrossingSmallFlowEdges (double smallFlowEdgesThreshold) |
| Gets the edges crossing the small flow edges. More...
|
|
std::vector< Point > | GetFlowEdgesCenters (const std::vector< UInt > &edges) const |
| Gets the flow edges centers from the crossing edges. More...
|
|
std::unique_ptr< meshkernel::UndoAction > | DeleteSmallFlowEdges (double smallFlowEdgesThreshold) |
| Deletes small flow edges (removesmallflowlinks, part 1) More...
|
|
std::unique_ptr< UndoAction > | DeleteSmallTrianglesAtBoundaries (double minFractionalAreaTriangles) |
| Deletes small triangles at the boundaries (removesmallflowlinks, part 2) More...
|
|
void | ComputeNodeNeighbours () |
| Computes m_nodesNodes, see class members.
|
|
std::vector< double > | GetOrthogonality () const |
| Get the orthogonality values, the inner product of edges and segments connecting the face circumcenters. More...
|
|
std::vector< double > | GetSmoothness () const |
| Gets the smoothness values, ratios of the face areas. More...
|
|
void | ComputeAspectRatios (std::vector< double > &aspectRatios) |
| Gets the aspect ratios (the ratios edges lengths to flow edges lengths) More...
|
|
void | ClassifyNodes () |
| Classifies the nodes (makenetnodescoding)
|
|
std::unique_ptr< UndoAction > | DeleteDegeneratedTriangles () |
| Deletes coinciding triangles.
|
|
std::unique_ptr< UndoAction > | TriangulateFaces () |
| Transform non-triangular faces in triangular faces.
|
|
void | MakeDualFace (UInt node, double enlargementFactor, std::vector< Point > &dualFace) |
| Make a dual face around the node, enlarged by a factor. More...
|
|
std::vector< UInt > | SortedFacesAroundNode (UInt node) const |
| Sorts the faces around a node, sorted in counter clock wise order. More...
|
|
std::vector< Point > | ComputeBoundaryPolygons (const std::vector< Point > &polygon) |
| Convert all mesh boundaries to a vector of polygon nodes, including holes (copynetboundstopol) More...
|
|
void | WalkBoundaryFromNode (const Polygon &polygon, std::vector< bool > &isVisited, UInt ¤tNode, std::vector< Point > &meshBoundaryPolygon) const |
| Constructs a polygon from the meshboundary, by walking through the mesh. More...
|
|
std::vector< UInt > | GetHangingEdges () const |
| Gets the hanging edges. More...
|
|
std::unique_ptr< UndoAction > | DeleteHangingEdges () |
| Deletes the hanging edges.
|
|
std::vector< UInt > | PointFaceIndices (const std::vector< Point > &points) |
| For a collection of points, compute the face indices including them. More...
|
|
std::unique_ptr< UndoAction > | DeleteMesh (const Polygons &polygon, DeleteMeshOptions deletionOption, bool invertDeletion) |
| Deletes a mesh in a polygon, using several options (delnet) More...
|
|
std::vector< bool > | FilterBasedOnMetric (Location location, Property property, double minValue, double maxValue) const |
| This method generates a mask indicating which locations are within the specified range of the given metric. More...
|
|
std::tuple< UInt, UInt > | IsSegmentCrossingABoundaryEdge (const Point &firstPoint, const Point &secondPoint) const |
| Inquire if a segment is crossing a face. More...
|
|
std::vector< int > | MaskEdgesOfFacesInPolygon (const Polygons &polygons, bool invertSelection, bool includeIntersected) const |
| Masks the edges of all faces entirely included in all polygons. More...
|
|
std::vector< int > | NodeMaskFromEdgeMask (std::vector< int > const &edgeMask) const |
| From the edge mask compute the node mask. More...
|
|
std::vector< int > | NodeMaskFromPolygon (const Polygons &polygons, bool inside) const |
| Mask all nodes included in all polygons. More...
|
|
UInt | FindOppositeEdge (const UInt faceId, const UInt edgeId) const |
| Find edge on the opposite side of the element. More...
|
|
UInt | NextFace (const UInt faceId, const UInt edgeId) const |
| Get the next face adjacent to the edge on the opposite side. More...
|
|
BoundingBox | GetBoundingBox () const |
| Get the mesh bounding box. More...
|
|
std::vector< BoundingBox > | GetEdgesBoundingBoxes () const |
| Get the bounding boxes of the mesh edges. More...
|
|
void | FindFacesConnectedToNode (UInt nodeIndex, std::vector< UInt > &sharedFaces) const |
| Find all faces that have the given node as a vertex. More...
|
|
void | GetConnectingNodes (UInt nodeIndex, std::vector< UInt > &connectedNodes) const |
| Get indices of all nodes that are connected directly to a give node along connected edges. More...
|
|
void | FindNodesSharedByFaces (UInt nodeIndex, const std::vector< UInt > &sharedFaces, std::vector< UInt > &connectedNodes, std::vector< std::vector< UInt >> &faceNodeMapping) const |
| Find all unique nodes. More...
|
|
UInt | IsStartOrEnd (const UInt edgeId, const UInt nodeId) const |
| Determine if the node is at the start or end of the edge. More...
|
|
UInt | IsLeftOrRight (const UInt elementId, const UInt edgeId) const |
| Determine if the element lies on the left or right side of the edge. More...
|
|
UInt | FindCommonFace (const UInt edge1, const UInt edge2) const |
| Find the id of the element that is common to both edges. More...
|
|
void | CommitAction (const ResetNodeAction &undoAction) |
| Apply the reset node action.
|
|
void | CommitAction (const AddNodeAction &undoAction) |
| Apply the add node action.
|
|
void | CommitAction (const AddEdgeAction &undoAction) |
| Apply the add edge action.
|
|
void | CommitAction (const ResetEdgeAction &undoAction) |
| Apply the reset edge action.
|
|
void | CommitAction (const DeleteNodeAction &undoAction) |
| Apply the delete node action.
|
|
void | CommitAction (NodeTranslationAction &undoAction) |
| Apply the node translation action.
|
|
void | CommitAction (MeshConversionAction &undoAction) |
| Apply the node translation action.
|
|
void | CommitAction (const DeleteEdgeAction &undoAction) |
| Apply the delete edge action.
|
|
void | CommitAction (FullUnstructuredGridUndo &undoAction) |
| Set the node and edge values.
|
|
void | RestoreAction (const ResetNodeAction &undoAction) |
| Undo the reset node action. More...
|
|
void | RestoreAction (const AddNodeAction &undoAction) |
| Undo the add node action. More...
|
|
void | RestoreAction (const AddEdgeAction &undoAction) |
| Undo the add edge action. More...
|
|
void | RestoreAction (const ResetEdgeAction &undoAction) |
| Undo the reset edge action. More...
|
|
void | RestoreAction (const DeleteNodeAction &undoAction) |
| Undo the delete node action. More...
|
|
void | RestoreAction (NodeTranslationAction &undoAction) |
| Undo the node translation action. More...
|
|
void | RestoreAction (MeshConversionAction &undoAction) |
| Undo the node translation action. More...
|
|
void | RestoreAction (const DeleteEdgeAction &undoAction) |
| Undo the delete edge action. More...
|
|
void | RestoreAction (FullUnstructuredGridUndo &undoAction) |
| Undo entire node and edge values. More...
|
|
virtual | ~Mesh ()=default |
| Define virtual destructor.
|
|
| Mesh () |
| Default constructor, setting a cartesian projection.
|
|
Mesh & | operator= (const Mesh &mesh)=delete |
| Delete assignment operator.
|
|
Mesh & | operator= (Mesh &&mesh)=delete |
| Delete move assignment operator.
|
|
| Mesh (const Mesh &mesh)=delete |
| Copy constructor taking only a mesh.
|
|
| Mesh (Mesh &&mesh)=delete |
| Move constructor taking only a mesh.
|
|
| Mesh (Projection projection) |
| Constructs an empty mesh, sets only the projection. More...
|
|
| Mesh (const std::vector< Edge > &edges, const std::vector< Point > &nodes, Projection projection) |
| Construct a mesh starting from the edges and nodes. More...
|
|
bool | IsNodeOnBoundary (UInt node) const |
| Inquire if a node is on boundary. More...
|
|
auto | GetNumNodes () const |
| Get the number of valid nodes. More...
|
|
auto | GetNumEdges () const |
| Get the number of valid edges. More...
|
|
auto | GetNumFaces () const |
| Get the number of valid faces. More...
|
|
UInt | GetNumValidNodes () const |
| Get the number of valid nodes. More...
|
|
UInt | GetNumValidEdges () const |
| Get the number of valid edges. More...
|
|
auto | GetNumFaceEdges (UInt faceIndex) const |
| Get the number of edges for a face. More...
|
|
auto | GetNumEdgesFaces (UInt edgeIndex) const |
| Get the number of faces an edges shares. More...
|
|
UInt | GetEdgeIndex (const UInt elementId, const UInt edgeId) const |
| Get the local edge number for an element edge.
|
|
UInt | GetNodeIndex (const UInt elementId, const UInt nodeId) const |
| Get the local node number for an element node.
|
|
bool | IsEdgeOnBoundary (UInt edge) const |
| Inquire if an edge is on boundary. More...
|
|
bool | IsFaceOnBoundary (UInt face) const |
| Inquire if a face is on boundary. More...
|
|
const std::vector< Point > & | Nodes () const |
| Get vector of all nodes.
|
|
const Point & | Node (const UInt index) const |
| Get the node at the position.
|
|
void | SetNodes (const std::vector< Point > &newValues) |
| Set all nodes to a new set of values.
|
|
void | SetNode (const UInt index, const Point &newValue) |
| Set a node to a new value, bypassing the undo action.
|
|
std::unique_ptr< ResetNodeAction > | ResetNode (const UInt index, const Point &newValue) |
| Set the node to a new value, this value may be the in-valid value.
|
|
const std::vector< Edge > & | Edges () const |
| Get all edges.
|
|
const Edge & | GetEdge (const UInt index) const |
| Get constant reference to an edge.
|
|
void | SetEdges (const std::vector< Edge > &newValues) |
| Set all edges to a new set of values.
|
|
void | SetEdge (const UInt index, const Edge &edge) |
| Set the edge to a new value, bypassing the undo action.
|
|
std::unique_ptr< ResetEdgeAction > | ResetEdge (UInt edgeId, const Edge &edge) |
| Change the nodes referenced by the edge.
|
|
UInt | GetLocalFaceNodeIndex (const UInt faceIndex, const UInt nodeIndex) const |
| Get the local index of the node belong to a face. More...
|
|
std::unique_ptr< UndoAction > | MergeTwoNodes (UInt startNode, UInt endNode) |
| Merges two mesh nodes. More...
|
|
std::unique_ptr< UndoAction > | MergeNodesInPolygon (const Polygons &polygons, double mergingDistance) |
| Merge close mesh nodes inside a polygon (MERGENODESINPOLYGON) More...
|
|
std::tuple< UInt, std::unique_ptr< AddNodeAction > > | InsertNode (const Point &newPoint) |
| Insert a new node in the mesh (setnewpoint) More...
|
|
std::tuple< UInt, std::unique_ptr< AddEdgeAction > > | ConnectNodes (UInt startNode, UInt endNode) |
| Connect two existing nodes, checking if the nodes are already connected. If the nodes are not connected a new edge is formed, otherwise UInt invalid value is returned. (connectdbn) More...
|
|
std::unique_ptr< DeleteNodeAction > | DeleteNode (UInt node) |
| Deletes a node and removes any connected edges. More...
|
|
UInt | FindEdge (UInt firstNodeIndex, UInt secondNodeIndex) const |
| Find the edge sharing two nodes. More...
|
|
UInt | FindEdgeWithLinearSearch (UInt firstNodeIndex, UInt secondNodeIndex) const |
| Find the edge using a linear search, without connectivity information (much slower than FindEdge) More...
|
|
std::unique_ptr< UndoAction > | MoveNode (Point newPoint, UInt nodeindex) |
| Move a node to a new location. More...
|
|
UInt | FindLocationIndex (Point point, Location location, const std::vector< bool > &locationMask={}, const BoundingBox &boundingBox={}) |
| Get the index of a location (node/edge or face) close to a point. More...
|
|
UInt | FindNodeCloseToAPoint (Point const &point, double searchRadius) |
| Get the index of a node close to a point. More...
|
|
std::unique_ptr< DeleteEdgeAction > | DeleteEdge (UInt edge) |
| Deletes an edge. More...
|
|
UInt | FindCommonNode (UInt firstEdgeIndex, UInt secondEdgeIndex) const |
| Find the common node two edges share This method uses return parameters since the success is evaluated in a hot loop. More...
|
|
void | ComputeEdgesLengths () |
| Compute the lengths of all edges in one go.
|
|
double | ComputeMinEdgeLength (const Polygons &polygon) const |
| Compute the minimum edge length of the edges included in the polygon. An edge is considered included if one of the two nodes is inside the polygon. More...
|
|
void | ComputeEdgesCenters () |
| Computes the edges centers in one go.
|
|
bool | NodeAdministration () |
| Node administration (setnodadmin) More...
|
|
void | DeleteInvalidNodesAndEdges () |
| Removes all invalid nodes and edges.
|
|
void | AdministrateNodesEdges (CompoundUndoAction *undoAction=nullptr) |
| Perform node and edges administration.
|
|
void | SortEdgesInCounterClockWiseOrder (UInt startNode, UInt endNode) |
| Sort mesh edges around a node in counterclockwise order (Sort_links_ccw) More...
|
|
double | ComputeMaxLengthSurroundingEdges (UInt node) |
| Compute the max length of the edges connected to a node. More...
|
|
void | BuildTree (Location location, const BoundingBox &boundingBox={}) |
| Build the rtree for the corresponding location, using only the locations inside the bounding box. More...
|
|
std::vector< Point > | ComputeLocations (Location location) const |
| Computes a vector with the mesh locations coordinates (nodes, edges or faces coordinates). More...
|
|
std::vector< bool > | IsLocationInPolygon (const Polygons &polygon, Location location) const |
| Computes if a location is in polygon. More...
|
|
Mesh & | operator+= (Mesh const &rhs) |
| Add meshes: result is a mesh composed of the additions firstMesh += secondmesh results in the second mesh being added to firstMesh. More...
|
|
std::unique_ptr< UndoAction > | Join (const Mesh &rhs) |
| Add meshes: result is a mesh composed of the additions firstMesh += secondmesh results in the second mesh being added to firstMesh. More...
|
|
std::vector< UInt > | GetValidNodeMapping () const |
| Get the mapping/indexing from the node array mapped to valid nodes.
|
|
std::vector< UInt > | GetValidEdgeMapping () const |
| Get the mapping/indexing from the edge array mapped to valid edges.
|
|
bool | IsValidEdge (const UInt edgeId) const |
| Indicate if the edge-id is a valid edge. More...
|
|
void | CommitAction (const ResetNodeAction &undoAction) |
| Apply the reset node action.
|
|
void | CommitAction (const AddNodeAction &undoAction) |
| Apply the add node action.
|
|
void | CommitAction (const AddEdgeAction &undoAction) |
| Apply the add edge action.
|
|
void | CommitAction (const ResetEdgeAction &undoAction) |
| Apply the reset edge action.
|
|
void | CommitAction (const DeleteNodeAction &undoAction) |
| Apply the delete node action.
|
|
void | CommitAction (NodeTranslationAction &undoAction) |
| Apply the node translation action.
|
|
void | CommitAction (MeshConversionAction &undoAction) |
| Apply the node translation action.
|
|
void | CommitAction (const DeleteEdgeAction &undoAction) |
| Apply the delete edge action.
|
|
void | CommitAction (FullUnstructuredGridUndo &undoAction) |
| Set the node and edge values.
|
|
void | RestoreAction (const ResetNodeAction &undoAction) |
| Undo the reset node action. More...
|
|
void | RestoreAction (const AddNodeAction &undoAction) |
| Undo the add node action. More...
|
|
void | RestoreAction (const AddEdgeAction &undoAction) |
| Undo the add edge action. More...
|
|
void | RestoreAction (const ResetEdgeAction &undoAction) |
| Undo the reset edge action. More...
|
|
void | RestoreAction (const DeleteNodeAction &undoAction) |
| Undo the delete node action. More...
|
|
void | RestoreAction (NodeTranslationAction &undoAction) |
| Undo the node translation action. More...
|
|
void | RestoreAction (MeshConversionAction &undoAction) |
| Undo the node translation action. More...
|
|
void | RestoreAction (const DeleteEdgeAction &undoAction) |
| Undo the delete edge action. More...
|
|
void | RestoreAction (FullUnstructuredGridUndo &undoAction) |
| Undo entire node and edge values. More...
|
|
RTreeBase & | GetRTree (Location location) const |
| Get a reference to the RTree for a specific location.
|
|
void | SetNodesRTreeRequiresUpdate (bool value) |
| Set the m_nodesRTreeRequiresUpdate flag. More...
|
|
void | SetEdgesRTreeRequiresUpdate (bool value) |
| Set the m_edgesRTreeRequiresUpdate flag. More...
|
|
void | SetFacesRTreeRequiresUpdate (bool value) |
| Set the m_facesRTreeRequiresUpdate flag. More...
|
|