Workspace 6.21.5
Public Types | Public Member Functions | List of all members
QuadSplitter Class Reference

Helper class for splitting quad shell elements.

#include <Mesh/ModelEdit/quadsplitter.h>

Public Types

typedef QVector< Node * > NodeVector
 

Public Member Functions

 QuadSplitter (MeshModel &model)
 
 ~QuadSplitter ()
 
void divideDiagonal (ShellElement &origElem, Node &node)
 
void split (ShellElement &origElem, NodeVector &splitEdges)
 

Member Typedef Documentation

◆ NodeVector

typedef QVector<Node*> NodeVector

Constructor & Destructor Documentation

◆ QuadSplitter()

QuadSplitter ( MeshModel model)
Parameters
modelNew elements will be added to this model.

◆ ~QuadSplitter()

Member Function Documentation

◆ divideDiagonal()

void divideDiagonal ( ShellElement origElem,
Node node0 
)
Parameters
origElemThe element to be divided. It must be a QUAD.
node0One of the nodes on the diagonal to divide along.

This function replaces origElem with two TRI elements. The two TRI's will share an edge along the QUAD's diagonal defined by node and the corner directly opposite node. origElem will be removed (as opposed to erased). The attached shell element lists of all affected nodes are updated by this call, but they will need to be resorted. The attached node lists are updated.

◆ split()

void split ( ShellElement origElem,
QuadSplitter::NodeVector splitEdges 
)
Parameters
origElemThe element to be split.
splitEdgesVector of node pointers. Each entry is the node for the matching edge of the element. If the edge needs splitting, the pointer will hold a new node. If the edge does not need splitting, the pointer will be null.

This function will add new elements that would replace origElem when its long edges are split, as determined by the contents of splitEdges. origElem will also be removed (as opposed to erased) if it is split. The attached shell element lists of all affected nodes are not updated by this call.