Skip to content
Snippets Groups Projects
Commit 3cfa57bf authored by Tom Fischer's avatar Tom Fischer Committed by Dmitri Naumov
Browse files

[MeL] Mv Element::_nodes to TemplateElement::_nodes.

# Conflicts:
#	MeshLib/Elements/Element.cpp
#	MeshLib/Elements/TemplateElement.h
parent 57f7638d
No related branches found
No related tags found
No related merge requests found
......@@ -22,14 +22,10 @@
namespace MeshLib
{
Element::Element(std::size_t id)
: _nodes(nullptr), _id(id), _neighbors(nullptr)
{
}
Element::Element(std::size_t id) : _id(id), _neighbors(nullptr) {}
Element::~Element()
{
delete[] this->_nodes;
delete[] this->_neighbors;
}
......
......@@ -182,7 +182,6 @@ protected:
/// Sets the element ID.
virtual void setID(std::size_t id) final { _id = id; }
Node** _nodes;
std::size_t _id;
Element** _neighbors;
......
......@@ -12,12 +12,11 @@
namespace MeshLib
{
template <class ELEMENT_RULE>
TemplateElement<ELEMENT_RULE>::TemplateElement(Node* nodes[n_all_nodes], std::size_t id)
: Element(id)
TemplateElement<ELEMENT_RULE>::TemplateElement(Node* nodes[n_all_nodes],
std::size_t id)
: Element(id), _nodes(nodes)
{
this->_nodes = nodes;
this->_neighbors = new Element*[getNumberOfNeighbors()];
std::fill(this->_neighbors, this->_neighbors + getNumberOfNeighbors(), nullptr);
......@@ -25,10 +24,10 @@ TemplateElement<ELEMENT_RULE>::TemplateElement(Node* nodes[n_all_nodes], std::si
}
template <class ELEMENT_RULE>
TemplateElement<ELEMENT_RULE>::TemplateElement(std::array<Node*, n_all_nodes> const& nodes, std::size_t id)
: Element(id)
TemplateElement<ELEMENT_RULE>::TemplateElement(
std::array<Node*, n_all_nodes> const& nodes, std::size_t id)
: Element(id), _nodes(new Node*[n_all_nodes])
{
this->_nodes = new Node*[n_all_nodes];
std::copy(nodes.begin(), nodes.end(), this->_nodes);
this->_neighbors = new Element*[getNumberOfNeighbors()];
std::fill(this->_neighbors, this->_neighbors + getNumberOfNeighbors(), nullptr);
......@@ -37,10 +36,9 @@ TemplateElement<ELEMENT_RULE>::TemplateElement(std::array<Node*, n_all_nodes> co
}
template <class ELEMENT_RULE>
TemplateElement<ELEMENT_RULE>::TemplateElement(const TemplateElement &e)
: Element(e.getID())
TemplateElement<ELEMENT_RULE>::TemplateElement(const TemplateElement& e)
: Element(e.getID()), _nodes(new Node*[n_all_nodes])
{
this->_nodes = new Node*[n_all_nodes];
for (unsigned i = 0; i < n_all_nodes; i++)
{
this->_nodes[i] = e._nodes[i];
......
......@@ -65,6 +65,7 @@ public:
/// Copy constructor
TemplateElement(const TemplateElement &e);
~TemplateElement() { delete[] _nodes; }
/// Returns a copy of this object.
Element* clone() const override { return new TemplateElement(*this); }
......
......@@ -94,7 +94,7 @@ Mesh::Mesh(const Mesh& mesh)
_elements[i] = elements[i]->clone();
for (unsigned j = 0; j < nElemNodes; ++j)
{
_elements[i]->_nodes[j] = _nodes[elements[i]->getNode(j)->getID()];
_elements[i]->setNode(j, _nodes[elements[i]->getNode(j)->getID()]);
}
}
......@@ -130,7 +130,7 @@ void Mesh::addElement(Element* elem)
unsigned nNodes(elem->getNumberOfNodes());
for (unsigned i = 0; i < nNodes; ++i)
{
elem->_nodes[i]->addElement(elem);
const_cast<Node*>(elem->getNode(i))->addElement(elem);
}
}
......@@ -184,7 +184,7 @@ void Mesh::setElementsConnectedToNodes()
const unsigned nNodes(element->getNumberOfNodes());
for (unsigned j = 0; j < nNodes; ++j)
{
element->_nodes[j]->addElement(element);
const_cast<Node*>(element->getNode(j))->addElement(element);
}
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment