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 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;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
||||||
};
|
};
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user