Bugfix: valid model check and private data syntax

This commit is contained in:
Hrvoje Jasak 2017-11-09 13:36:08 +00:00
parent 9ccbcf5bc6
commit 3414e6eb38
3 changed files with 26 additions and 16 deletions

View file

@ -74,7 +74,7 @@ class cellShape
// Private data
//- Access to the cellShape's model
const cellModel *m;
const cellModel* m_;
public:
@ -104,6 +104,9 @@ public:
//- Return the points corresponding to this cellShape
inline pointField points(const pointField& meshPoints) const;
//- Is model reference valid (model exists)
inline bool validModel() const;
//- Model reference
inline const cellModel& model() const;

View file

@ -30,7 +30,7 @@ License
inline Foam::cellShape::cellShape()
:
m(NULL)
m_(NULL)
{}
@ -42,7 +42,7 @@ inline Foam::cellShape::cellShape
)
:
labelList(l),
m(&M)
m_(&M)
{
if (doCollapse)
{
@ -85,9 +85,15 @@ inline Foam::pointField Foam::cellShape::points
}
inline bool Foam::cellShape::validModel() const
{
return m_ != NULL;
}
inline const Foam::cellModel& Foam::cellShape::model() const
{
return *m;
return *m_;
}
@ -161,7 +167,7 @@ inline Foam::labelList Foam::cellShape::meshEdges
inline Foam::faceList Foam::cellShape::faces() const
{
return m->faces(*this);
return m_->faces(*this);
}
@ -216,19 +222,19 @@ inline Foam::faceList Foam::cellShape::collapsedFaces() const
inline Foam::label Foam::cellShape::nFaces() const
{
return m->nFaces();
return m_->nFaces();
}
inline Foam::edgeList Foam::cellShape::edges() const
{
return m->edges(*this);
return m_->edges(*this);
}
inline Foam::label Foam::cellShape::nEdges() const
{
return m->nEdges();
return m_->nEdges();
}
@ -240,13 +246,13 @@ inline Foam::label Foam::cellShape::nPoints() const
inline Foam::point Foam::cellShape::centre(const pointField& points) const
{
return m->centre(*this, points);
return m_->centre(*this, points);
}
inline Foam::scalar Foam::cellShape::mag(const pointField& points) const
{
return m->mag(*this, points);
return m_->mag(*this, points);
}

View file

@ -64,11 +64,11 @@ Istream& operator>>(Istream& is, cellShape& s)
// it is allowed to have either a word or a number describing the model
if (t.isLabel())
{
s.m = cellModeller::lookup(int(t.labelToken()));
s.m_ = cellModeller::lookup(int(t.labelToken()));
}
else if (t.isWord())
{
s.m = cellModeller::lookup(t.wordToken());
s.m_ = cellModeller::lookup(t.wordToken());
}
else
{
@ -79,11 +79,12 @@ Istream& operator>>(Istream& is, cellShape& s)
}
// Check that a model was found
if (!s.m)
if (!s.m_)
{
FatalIOErrorIn("operator>>(Istream& is, cellShape& s)", is)
<< "CellShape has unknown model " << t.info()
<< exit(FatalIOError);
return is;
}
@ -106,10 +107,10 @@ Ostream& operator<<(Ostream& os, const cellShape & s)
os << token::BEGIN_LIST;
// Write the list label for the symbol (ONE OR THE OTHER !!!)
os << (s.m)->index() << token::SPACE;
os << (s.m_)->index() << token::SPACE;
// Write the model name instead of the label (ONE OR THE OTHER !!!)
// os << (s.m)->name() << token::SPACE;
// os << (s.m_)->name() << token::SPACE;
// Write the geometry
os << static_cast<const labelList&>(s);
@ -128,7 +129,7 @@ Ostream& operator<<(Ostream& os, const InfoProxy<cellShape>& ip)
{
const cellShape& cs = ip.t_;
if (!(&cs.model()))
if (!cs.validModel())
{
os << " cellShape has no model!\n";
}