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 SurfaceTriangleIterator& getTriangle(void) const;
void setPreviousHalfEdge(const SurfaceEdgeIterator& previousHalfEdgeToSet) const;
void setNextHalfEdge(const SurfaceEdgeIterator& nextHalfEdgeToSet) const;
void setTriangle(const SurfaceTriangleIterator& triangleToSet) const;
void setPreviousHalfEdge(const SurfaceEdgeIterator& previousHalfEdgeToSet);
void setNextHalfEdge(const SurfaceEdgeIterator& nextHalfEdgeToSet);
void setTriangle(const SurfaceTriangleIterator& triangleToSet);
void pairWithOtherHalfEdge(const SurfaceEdgeIterator& otherHalfEdgeToPair) const;
void pairWithOtherHalfEdge(const SurfaceEdgeIterator& otherHalfEdgeToPair);
private:
SurfaceVertexIterator target;
SurfaceVertexIterator source;
mutable SurfaceEdgeIterator previousHalfEdge;
mutable SurfaceEdgeIterator nextHalfEdge;
mutable SurfaceEdgeIterator otherHalfEdge;
SurfaceEdgeIterator previousHalfEdge;
SurfaceEdgeIterator nextHalfEdge;
SurfaceEdgeIterator otherHalfEdge;
mutable SurfaceTriangleIterator triangle;
SurfaceTriangleIterator triangle;
};
}

View File

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

View File

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

View File

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

View File

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

View File

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