Removed mutable stuff and opted for const_cast instead.
This commit is contained in:
parent
f730438f21
commit
742b8e68ec
@ -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;
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
};
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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();
|
||||
|
Loading…
x
Reference in New Issue
Block a user