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

Class for storing and manipulating a list of ShellElement objects.

#include <Mesh/DataStructures/shellelementlist.h>

Inheritance diagram for ShellElementList:
[legend]

Public Member Functions

 ShellElementList (NodeList &nodes)
 
ShellElementaddShellElement (const ShellElement &elem, Node **nodes)
 
ShellElementaddShellElement (long compIDnum, Node &n0, Node &n1, Node &n2, bool allowBadNormal=false)
 
ShellElementaddShellElement (long compIDnum, Node &n0, Node &n1, Node &n2, Node &n3, bool allowBadNormal=false)
 
ShellElementaddShellElement (long IDnum, long compIDnum, Node &n0, Node &n1, Node &n2, bool allowBadNormal=false)
 
ShellElementaddShellElement (long IDnum, long compIDnum, Node &n0, Node &n1, Node &n2, Node &n3, bool allowBadNormal=false)
 
ShellElementaddShellElement (ProximityNodes &prox, long compIDnum, Vector3d &v0, Vector3d &v1, Vector3d &v2, bool allowBadNormal=false)
 
ShellElementaddShellElement (ProximityNodes &prox, long compIDnum, Vector3d &v0, Vector3d &v1, Vector3d &v2, Vector3d &v3, bool allowBadNormal=false)
 
ShellElementaddShellElement (ProximityNodes &prox, long IDnum, long compIDnum, Vector3d &v0, Vector3d &v1, Vector3d &v2, bool allowBadNormal=false)
 
ShellElementaddShellElement (ProximityNodes &prox, long IDnum, long compIDnum, Vector3d &v0, Vector3d &v1, Vector3d &v2, Vector3d &v3, bool allowBadNormal=false)
 
bool getIgnoreNormals () const
 
void setIgnoreNormals (bool b)
 
void updateNormals ()
 
- Public Member Functions inherited from ElementList< ShellElement >
 ElementList (NodeList &nodes)
 
 ~ElementList () override
 
void absorb (ElementList< ShellElement > &otherList)
 
ShellElementaddElement (ShellElement &elem)
 
void eraseElement (typename NumberedObjectList< ShellElement >::iterator eIter)
 
void removeElement (ShellElement &elem)
 
void removeElementFromList (typename NumberedObjectList< ShellElement >::iterator eIter)
 
- Public Member Functions inherited from NumberedObjectList< T >
 NumberedObjectList ()
 Create an empty list with the largest ID set to zero.
 
virtual ~NumberedObjectList ()=0
 
T & add (T &obj)
 
void addIndexChangeRecipient (IndexChangeRecipient &observer)
 
void clearList ()
 
size_type computeValidObjectsCount () const
 
void emptyTrash ()
 
void emptyTrash (iterator startFrom)
 
long getLargestID () const
 
void killBack ()
 
void killList ()
 
void reindex (iterator beginIter, iterator endIter, long start=0)
 
void reindex (long start=0)
 
void remove (T &obj)
 This only marks obj for removal. It is not actually removed until EmptyTrash is called.
 
void removeFromList (iterator objIter)
 
void removeIndexChangeRecipient (IndexChangeRecipient &observer)
 
void renumber (long start=1, long incr=1)
 
void setLargestIDToAtLeast (long ID)
 
void updateLargestID ()
 
T & Add (T &obj)
 
void Remove (T &obj)
 
void RemoveFromList (iterator objIter)
 
void ClearList ()
 
void KillBack ()
 
void EmptyTrash ()
 
void EmptyTrash (iterator startFrom)
 
void KillList ()
 
long GetLargestID () const
 
void UpdateLargestID ()
 
void SetLargestIDToAtLeast (long ID)
 
void Renumber (long start=1, long incr=1)
 
void Reindex (long start=0)
 
void Reindex (iterator beginIter, iterator endIter, long start=0)
 
iterator begin ()
 STL container function.
 
const_iterator begin () const
 STL container function.
 
iterator end ()
 STL container function.
 
const_iterator end () const
 STL container function.
 
reverse_iterator rbegin ()
 STL container function.
 
const_reverse_iterator rbegin () const
 STL container function.
 
reverse_iterator rend ()
 STL container function.
 
const_reverse_iterator rend () const
 STL container function.
 
reference front ()
 STL container function.
 
const_reference front () const
 STL container function.
 
reference back ()
 STL container function.
 
const_reference back () const
 STL container function.
 
bool empty () const
 STL container function.
 
size_type size () const
 STL container function.
 
size_type max_size () const
 STL container function.
 
- Public Member Functions inherited from StateControl
 StateControl ()
 
virtual ~StateControl ()=default
 
void addIntegerState (const QString &name, long defaultVal=0)
 
void AddIntegerState (const QString &name, long defaultVal=0)
 
void addScalarState (const QString &name, double defaultVal=0)
 
void AddScalarState (const QString &name, double defaultVal=0)
 
void addVectorState (const QString &name, const Vector3d &defaultVal=Vector3d())
 
void AddVectorState (const QString &name, const Vector3d &defaultVal=Vector3d())
 
void assignDefaultState (State &object) const
 
void AssignDefaultState (State &object) const
 
void copyOnReallocateOff ()
 
void CopyOnReallocateOff ()
 
void copyOnReallocateOn ()
 
void CopyOnReallocateOn ()
 
void CopyWholeState (const State &object0, State &object1) const
 
void copyWholeState (const State &stateFrom, State &stateTo) const
 
void EnsureAllStatesSupported (const StateInfoArray &stateNames)
 
void ensureAllStatesSupported (const StateInfoArray &states)
 
StateInfoArray getAllStateInfo () const
 
StateInfoArray GetAllStateInfo () const
 
bool getInitStates () const
 
bool GetInitStates () const
 
int getStateIndex (const QString &stateName) const
 
int GetStateIndex (const QString &stateName) const
 
NameIndexMap getStateIndices () const
 
NameIndexMap GetStateIndices () const
 
void getStateIndices (NameIndexMap &stateIndices) const
 
void GetStateIndices (NameIndexMap &stateIndices) const
 
StateInfo getStateInfo (const QString &stateName) const
 
StateInfo GetStateInfo (const QString &stateName) const
 
bool haveState (const QString &name) const
 
bool HaveState (const QString &name) const
 
void InterpolateWholeState (const State &object0, const State &object1, State &interpObject, double p) const
 
void interpolateWholeState (const State &state0, const State &state1, const State &state2, const State &state3, State &interpState) const
 
void interpolateWholeState (const State &state0, const State &state1, State &interpState, double p) const
 
void makeStatesCompatible (const StateControl &states)
 
void reallocate ()
 
void Reallocate ()
 
void reallocationOff ()
 
void ReallocationOff ()
 
void reallocationOn ()
 
void ReallocationOn ()
 
void removeAllStates ()
 
void RemoveAllStates ()
 
void removeState (const QString &name)
 
void RemoveState (const QString &name)
 
bool renameState (const QString &from, const QString &to)
 
bool RenameState (const QString &from, const QString &to)
 
void setInitStates (bool b)
 
void SetInitStates (bool b)
 
void setInitStatesOff ()
 
void SetInitStatesOff ()
 
void setInitStatesOn ()
 
void SetInitStatesOn ()
 

Additional Inherited Members

- Public Types inherited from NumberedObjectList< T >
typedef T BaseItemType
 Allow the object type to be queried by other templates.
 
using container_type = std::list< T * >
 STL container typedef.
 
using value_type = typename container_type::value_type
 STL container typedef.
 
using size_type = typename container_type::size_type
 STL container typedef.
 
using difference_type = typename container_type::difference_type
 STL container typedef.
 
using reference = typename container_type::reference
 STL container typedef.
 
using const_reference = typename container_type::const_reference
 STL container typedef.
 
using iterator = typename container_type::iterator
 STL container typedef.
 
using const_iterator = typename container_type::const_iterator
 STL container typedef.
 
using reverse_iterator = typename container_type::reverse_iterator
 STL container typedef.
 
using const_reverse_iterator = typename container_type::const_reverse_iterator
 STL container typedef.
 
- Protected Member Functions inherited from StateControl
unsigned getDoublesStateSize () const
 
unsigned getIntegerStateSize () const
 
virtual void resizeDoubles (const IndexMappings &mappings, const StateInfoArray &updatedStates, unsigned updatedDoublesStateSize)=0
 
template<typename IteratorT >
void resizeDoublesStates (IteratorT iterBegin, IteratorT iterEnd, const IndexMappings &mappings, const StateInfoArray &updatedStates, unsigned updatedDoublesStateSize)
 
virtual void resizeIntegers (const IndexMappings &mappings, const StateInfoArray &updatedStates, unsigned updatedIntegerStateSize)=0
 
template<typename IteratorT >
void resizeIntegerStates (IteratorT iterBegin, IteratorT iterEnd, const IndexMappings &mappings, const StateInfoArray &updatedStates, unsigned updatedIntegerStateSize)
 
- Protected Attributes inherited from StateControl
bool initStates_
 

Constructor & Destructor Documentation

◆ ShellElementList()

ShellElementList ( NodeList nodes)

Normals will be calculated by default when elements are created.

Member Function Documentation

◆ addShellElement() [1/9]

ShellElement & addShellElement ( const ShellElement elem,
Node **  nodes 
)

◆ addShellElement() [2/9]

ShellElement & addShellElement ( long  compIDnum,
Node n0,
Node n1,
Node n2,
bool  allowBadNormal = false 
)

Create a tri shell element with the next highest unique ID and add it to the list. State arrays are also allocated.

◆ addShellElement() [3/9]

ShellElement & addShellElement ( long  compIDnum,
Node n0,
Node n1,
Node n2,
Node n3,
bool  allowBadNormal = false 
)

Create a quad shell element with the next highest unique ID and add it to the list. State arrays are also allocated.

◆ addShellElement() [4/9]

ShellElement & addShellElement ( long  IDnum,
long  compIDnum,
Node n0,
Node n1,
Node n2,
bool  allowBadNormal = false 
)

Create a tri shell element and add it to the list. State arrays are also allocated.

◆ addShellElement() [5/9]

ShellElement & addShellElement ( long  IDnum,
long  compIDnum,
Node n0,
Node n1,
Node n2,
Node n3,
bool  allowBadNormal = false 
)

Create a quad shell element and add it to the list. State arrays are also allocated.

◆ addShellElement() [6/9]

ShellElement & addShellElement ( ProximityNodes prox,
long  compIDnum,
Vector3d v0,
Vector3d v1,
Vector3d v2,
bool  allowBadNormal = false 
)

Create a tri shell element with the next highest unique ID and add it to the list. State arrays are also allocated. This function uses the prox parameter to only create a new node if there is not already a node deemed close enough to a given point. The function ensures that the element uses distinct nodes for each vertex, so it is still possible that duplicate nodes can be created. This should only ever happen if the element is effectively degenerate in the first place.

◆ addShellElement() [7/9]

ShellElement & addShellElement ( ProximityNodes prox,
long  compIDnum,
Vector3d v0,
Vector3d v1,
Vector3d v2,
Vector3d v3,
bool  allowBadNormal = false 
)

Create a tri shell element with the next highest unique ID and add it to the list. State arrays are also allocated. This function uses the prox parameter to only create a new node if there is not already a node deemed close enough to a given point. The function ensures that the element uses distinct nodes for each vertex, so it is still possible that duplicate nodes can be created. This should only ever happen if the element is effectively degenerate in the first place.

◆ addShellElement() [8/9]

ShellElement & addShellElement ( ProximityNodes prox,
long  IDnum,
long  compIDnum,
Vector3d v0,
Vector3d v1,
Vector3d v2,
bool  allowBadNormal = false 
)

Create a tri shell element and add it to the list. State arrays are also allocated. This function uses the prox parameter to only create a new node if there is not already a node deemed close enough to a given point. The function ensures that the element uses distinct nodes for each vertex, so it is still possible that duplicate nodes can be created. This should only ever happen if the element is effectively degenerate in the first place.

◆ addShellElement() [9/9]

ShellElement & addShellElement ( ProximityNodes prox,
long  IDnum,
long  compIDnum,
Vector3d v0,
Vector3d v1,
Vector3d v2,
Vector3d v3,
bool  allowBadNormal = false 
)

Create a tri shell element and add it to the list. State arrays are also allocated. This function uses the prox parameter to only create a new node if there is not already a node deemed close enough to a given point. The function ensures that the element uses distinct nodes for each vertex, so it is still possible that duplicate nodes can be created. This should only ever happen if the element is effectively degenerate in the first place.

◆ getIgnoreNormals()

bool getIgnoreNormals ( ) const
inline

◆ setIgnoreNormals()

void setIgnoreNormals ( bool  b)
inline

◆ updateNormals()

void updateNormals ( )

Update the normals for the entire list of shell elements. Users would not normally call this directly unless they are moving nodes around. Some algorithms may call this function internally where necessary.