36#ifndef ABSTRACTELEMENT_HPP_
37#define ABSTRACTELEMENT_HPP_
43#include "ElementAttributes.hpp"
49const unsigned INDEX_IS_NOT_USED=0;
54template <
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
60 std::vector<Node<SPACE_DIM>*>
mNodes;
148 c_vector<double, SPACE_DIM>
GetNodeLocation(
unsigned localIndex)
const;
void SetAttribute(double attribute)
void ReplaceNode(Node< SPACE_DIM > *pOldNode, Node< SPACE_DIM > *pNewNode)
Node< SPACE_DIM > * GetNode(unsigned localIndex) const
virtual void RegisterWithNodes()=0
unsigned GetUnsignedAttribute()
virtual ~AbstractElement()
void ConstructElementAttributes()
std::vector< double > & rGetElementAttributes()
ElementAttributes< ELEMENT_DIM, SPACE_DIM > * mpElementAttributes
double GetNodeLocation(unsigned localIndex, unsigned dimension) const
unsigned GetNumElementAttributes()
void AddElementAttribute(double attribute)
unsigned GetNumNodes() const
unsigned GetNodeGlobalIndex(unsigned localIndex) const
virtual void MarkAsDeleted()=0
bool GetOwnership() const
void AddNode(Node< SPACE_DIM > *pNode)
unsigned GetIndex() const
void SetOwnership(bool ownership)
virtual void UpdateNode(const unsigned &rIndex, Node< SPACE_DIM > *pNode)=0
void SetIndex(unsigned index)
std::vector< Node< SPACE_DIM > * > mNodes