Removed mutable stuff and opted for const_cast instead.

This commit is contained in:
David Williams 2007-10-05 21:49:30 +00:00
parent f730438f21
commit 742b8e68ec
6 changed files with 33 additions and 33 deletions

View File

@ -45,21 +45,21 @@ namespace Ogre
const SurfaceEdgeIterator& getNextHalfEdge(void) const; const SurfaceEdgeIterator& getNextHalfEdge(void) const;
const SurfaceTriangleIterator& getTriangle(void) const; const SurfaceTriangleIterator& getTriangle(void) const;
void setPreviousHalfEdge(const SurfaceEdgeIterator& previousHalfEdgeToSet) const; void setPreviousHalfEdge(const SurfaceEdgeIterator& previousHalfEdgeToSet);
void setNextHalfEdge(const SurfaceEdgeIterator& nextHalfEdgeToSet) const; void setNextHalfEdge(const SurfaceEdgeIterator& nextHalfEdgeToSet);
void setTriangle(const SurfaceTriangleIterator& triangleToSet) const; void setTriangle(const SurfaceTriangleIterator& triangleToSet);
void pairWithOtherHalfEdge(const SurfaceEdgeIterator& otherHalfEdgeToPair) const; void pairWithOtherHalfEdge(const SurfaceEdgeIterator& otherHalfEdgeToPair);
private: private:
SurfaceVertexIterator target; SurfaceVertexIterator target;
SurfaceVertexIterator source; SurfaceVertexIterator source;
mutable SurfaceEdgeIterator previousHalfEdge; SurfaceEdgeIterator previousHalfEdge;
mutable SurfaceEdgeIterator nextHalfEdge; SurfaceEdgeIterator nextHalfEdge;
mutable SurfaceEdgeIterator otherHalfEdge; SurfaceEdgeIterator otherHalfEdge;
mutable SurfaceTriangleIterator triangle; SurfaceTriangleIterator triangle;
}; };
} }

View File

@ -44,17 +44,17 @@ namespace Ogre
const UIntVector3& getPosition(void) const; const UIntVector3& getPosition(void) const;
void setAlpha(float alphaToSet); void setAlpha(float alphaToSet);
void setEdge(const SurfaceEdgeIterator& edgeToSet) const; void setEdge(const SurfaceEdgeIterator& edgeToSet);
void setNormal(const Vector3& normalToSet) const; void setNormal(const Vector3& normalToSet);
std::string toString(void) const; std::string toString(void) const;
private: private:
UIntVector3 position; UIntVector3 position;
mutable Vector3 normal; Vector3 normal;
float alpha; float alpha;
mutable SurfaceEdgeIterator edge; SurfaceEdgeIterator edge;
unsigned long m_uHash; unsigned long m_uHash;
}; };

View File

@ -717,7 +717,7 @@ namespace Ogre
while(iterSurfaceVertex != iterPatch->second.getVerticesEnd()) while(iterSurfaceVertex != iterPatch->second.getVerticesEnd())
{ {
Vector3 tempNormal = computeNormal((iterSurfaceVertex->getPosition() + offset).toOgreVector3()/2.0f, CENTRAL_DIFFERENCE); Vector3 tempNormal = computeNormal((iterSurfaceVertex->getPosition() + offset).toOgreVector3()/2.0f, CENTRAL_DIFFERENCE);
iterSurfaceVertex->setNormal(tempNormal); const_cast<SurfaceVertex&>(*iterSurfaceVertex).setNormal(tempNormal);
++iterSurfaceVertex; ++iterSurfaceVertex;
} }

View File

@ -60,7 +60,7 @@ namespace Ogre
return source; return source;
} }
void SurfaceEdge::pairWithOtherHalfEdge(const SurfaceEdgeIterator& otherHalfEdgeToPair) const void SurfaceEdge::pairWithOtherHalfEdge(const SurfaceEdgeIterator& otherHalfEdgeToPair)
{ {
otherHalfEdge = otherHalfEdgeToPair; otherHalfEdge = otherHalfEdgeToPair;
previousHalfEdge = otherHalfEdgeToPair; previousHalfEdge = otherHalfEdgeToPair;
@ -87,17 +87,17 @@ namespace Ogre
return triangle; return triangle;
} }
void SurfaceEdge::setPreviousHalfEdge(const SurfaceEdgeIterator& previousHalfEdgeToSet) const void SurfaceEdge::setPreviousHalfEdge(const SurfaceEdgeIterator& previousHalfEdgeToSet)
{ {
previousHalfEdge = previousHalfEdgeToSet; previousHalfEdge = previousHalfEdgeToSet;
} }
void SurfaceEdge::setNextHalfEdge(const SurfaceEdgeIterator& nextHalfEdgeToSet) const void SurfaceEdge::setNextHalfEdge(const SurfaceEdgeIterator& nextHalfEdgeToSet)
{ {
nextHalfEdge = nextHalfEdgeToSet; nextHalfEdge = nextHalfEdgeToSet;
} }
void SurfaceEdge::setTriangle(const SurfaceTriangleIterator& triangleToSet) const void SurfaceEdge::setTriangle(const SurfaceTriangleIterator& triangleToSet)
{ {
triangle = triangleToSet; triangle = triangleToSet;
} }

View File

@ -78,17 +78,17 @@ namespace Ogre
SurfaceEdgeIterator v1v2Iter = findOrAddEdge(v1Iter,v2Iter); SurfaceEdgeIterator v1v2Iter = findOrAddEdge(v1Iter,v2Iter);
SurfaceEdgeIterator v2v0Iter = findOrAddEdge(v2Iter,v0Iter); SurfaceEdgeIterator v2v0Iter = findOrAddEdge(v2Iter,v0Iter);
v0Iter->setEdge(v0v1Iter); const_cast<SurfaceVertex&>(*v0Iter).setEdge(v0v1Iter);
v1Iter->setEdge(v1v2Iter); const_cast<SurfaceVertex&>(*v1Iter).setEdge(v1v2Iter);
v2Iter->setEdge(v2v0Iter); const_cast<SurfaceVertex&>(*v2Iter).setEdge(v2v0Iter);
v0v1Iter->setNextHalfEdge(v1v2Iter); const_cast<SurfaceEdge&>(*v0v1Iter).setNextHalfEdge(v1v2Iter);
v1v2Iter->setNextHalfEdge(v2v0Iter); const_cast<SurfaceEdge&>(*v1v2Iter).setNextHalfEdge(v2v0Iter);
v2v0Iter->setNextHalfEdge(v0v1Iter); const_cast<SurfaceEdge&>(*v2v0Iter).setNextHalfEdge(v0v1Iter);
v0v1Iter->setPreviousHalfEdge(v2v0Iter); const_cast<SurfaceEdge&>(*v0v1Iter).setPreviousHalfEdge(v2v0Iter);
v1v2Iter->setPreviousHalfEdge(v0v1Iter); const_cast<SurfaceEdge&>(*v1v2Iter).setPreviousHalfEdge(v0v1Iter);
v2v0Iter->setPreviousHalfEdge(v1v2Iter); const_cast<SurfaceEdge&>(*v2v0Iter).setPreviousHalfEdge(v1v2Iter);
SurfaceTriangle triangle; SurfaceTriangle triangle;
@ -96,9 +96,9 @@ namespace Ogre
SurfaceTriangleIterator iterTriangle = m_listTriangles.insert(triangle).first; SurfaceTriangleIterator iterTriangle = m_listTriangles.insert(triangle).first;
v0v1Iter->setTriangle(iterTriangle); const_cast<SurfaceEdge&>(*v0v1Iter).setTriangle(iterTriangle);
v1v2Iter->setTriangle(iterTriangle); const_cast<SurfaceEdge&>(*v1v2Iter).setTriangle(iterTriangle);
v2v0Iter->setTriangle(iterTriangle); const_cast<SurfaceEdge&>(*v2v0Iter).setTriangle(iterTriangle);
} }
SurfaceVertexIterator SurfacePatch::findOrAddVertex(const SurfaceVertex& vertex) SurfaceVertexIterator SurfacePatch::findOrAddVertex(const SurfaceVertex& vertex)
@ -126,8 +126,8 @@ namespace Ogre
SurfaceEdge otherEdge(source, target); SurfaceEdge otherEdge(source, target);
SurfaceEdgeIterator otherEdgeIter = m_listEdges.insert(otherEdge).first; SurfaceEdgeIterator otherEdgeIter = m_listEdges.insert(otherEdge).first;
edgeIter->pairWithOtherHalfEdge(otherEdgeIter); const_cast<SurfaceEdge&>(*edgeIter).pairWithOtherHalfEdge(otherEdgeIter);
otherEdgeIter->pairWithOtherHalfEdge(edgeIter); const_cast<SurfaceEdge&>(*otherEdgeIter).pairWithOtherHalfEdge(edgeIter);
return edgeIter; return edgeIter;
} }

View File

@ -49,12 +49,12 @@ namespace Ogre
alpha = alphaToSet; alpha = alphaToSet;
} }
void SurfaceVertex::setEdge(const SurfaceEdgeIterator& edgeToSet) const void SurfaceVertex::setEdge(const SurfaceEdgeIterator& edgeToSet)
{ {
edge = edgeToSet; edge = edgeToSet;
} }
void SurfaceVertex::setNormal(const Vector3& normalToSet) const void SurfaceVertex::setNormal(const Vector3& normalToSet)
{ {
normal = normalToSet; normal = normalToSet;
normal.normalise(); normal.normalise();