Cleaning up decimation, moving to sets.
This commit is contained in:
parent
42e4526498
commit
cabc988625
@ -35,6 +35,9 @@ namespace Ogre
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
friend bool operator == (const SurfaceEdge& lhs, const SurfaceEdge& rhs);
|
||||||
|
friend bool operator < (const SurfaceEdge& lhs, const SurfaceEdge& rhs);
|
||||||
|
|
||||||
//int crud;
|
//int crud;
|
||||||
|
|
||||||
SurfaceVertexIterator target;
|
SurfaceVertexIterator target;
|
||||||
@ -52,10 +55,7 @@ namespace Ogre
|
|||||||
std::string toString(void);
|
std::string toString(void);
|
||||||
|
|
||||||
bool isDegenerate(void);
|
bool isDegenerate(void);
|
||||||
};
|
};
|
||||||
|
|
||||||
bool operator == (const SurfaceEdge& lhs, const SurfaceEdge& rhs);
|
|
||||||
bool operator < (const SurfaceEdge& lhs, const SurfaceEdge& rhs);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -34,16 +34,22 @@ namespace Ogre
|
|||||||
class SurfaceTriangle
|
class SurfaceTriangle
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
SurfaceEdgeIterator edge;
|
|
||||||
|
|
||||||
SurfaceTriangle();
|
SurfaceTriangle();
|
||||||
|
|
||||||
|
friend bool operator == (const SurfaceTriangle& lhs, const SurfaceTriangle& rhs);
|
||||||
|
friend bool operator < (const SurfaceTriangle& lhs, const SurfaceTriangle& rhs);
|
||||||
|
|
||||||
|
const SurfaceEdgeIterator& getEdge(void) const;
|
||||||
|
|
||||||
|
void setEdge(const SurfaceEdgeIterator& edgeToSet);
|
||||||
|
|
||||||
//std::string toString(void);
|
//std::string toString(void);
|
||||||
|
|
||||||
|
private:
|
||||||
|
SurfaceEdgeIterator edge;
|
||||||
};
|
};
|
||||||
|
|
||||||
bool operator == (const SurfaceTriangle& lhs, const SurfaceTriangle& rhs);
|
|
||||||
bool operator < (const SurfaceTriangle& lhs, const SurfaceTriangle& rhs);
|
|
||||||
|
|
||||||
//bool operator < (const SurfaceTriangleIterator& lhs, const SurfaceTriangleIterator& rhs);
|
//bool operator < (const SurfaceTriangleIterator& lhs, const SurfaceTriangleIterator& rhs);
|
||||||
}
|
}
|
||||||
|
@ -15,9 +15,8 @@ namespace Ogre
|
|||||||
{
|
{
|
||||||
return
|
return
|
||||||
(
|
(
|
||||||
(lhs.target == rhs.target) &&
|
((*lhs.target) == (*rhs.target)) &&
|
||||||
//(lhs.triangle == rhs.triangle)
|
((*lhs.otherHalfEdge->target) == (*rhs.otherHalfEdge->target))
|
||||||
(lhs.otherHalfEdge == rhs.otherHalfEdge)
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -28,14 +27,16 @@ namespace Ogre
|
|||||||
|
|
||||||
bool operator < (const SurfaceEdge& lhs, const SurfaceEdge& rhs)
|
bool operator < (const SurfaceEdge& lhs, const SurfaceEdge& rhs)
|
||||||
{
|
{
|
||||||
if(lhs.target == rhs.target)
|
if ((*lhs.target) < (*rhs.target))
|
||||||
{
|
return true;
|
||||||
if(lhs.otherHalfEdge->target == rhs.otherHalfEdge->target)
|
if ((*rhs.target) < (*lhs.target))
|
||||||
{
|
return false;
|
||||||
return false;
|
|
||||||
}
|
if ((*lhs.otherHalfEdge->target) < (*rhs.otherHalfEdge->target))
|
||||||
return (*(lhs.otherHalfEdge->target) < *(rhs.otherHalfEdge->target));
|
return true;
|
||||||
}
|
if ((*rhs.otherHalfEdge->target) < (*lhs.otherHalfEdge->target))
|
||||||
return (*(lhs.target) < *(rhs.target));
|
return false;
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -87,7 +87,7 @@ namespace Ogre
|
|||||||
|
|
||||||
SurfaceTriangle triangle;
|
SurfaceTriangle triangle;
|
||||||
|
|
||||||
triangle.edge = v0v1Iter;
|
triangle.setEdge(v0v1Iter);
|
||||||
|
|
||||||
//m_listTriangles.push_back(triangle);
|
//m_listTriangles.push_back(triangle);
|
||||||
//SurfaceTriangleIterator iterTriangle = m_listTriangles.end();
|
//SurfaceTriangleIterator iterTriangle = m_listTriangles.end();
|
||||||
@ -273,7 +273,7 @@ namespace Ogre
|
|||||||
std::vector<SurfaceVertex>::iterator iterVertex;
|
std::vector<SurfaceVertex>::iterator iterVertex;
|
||||||
SurfaceEdgeIterator edgeIter;
|
SurfaceEdgeIterator edgeIter;
|
||||||
|
|
||||||
edgeIter = iterTriangles->edge;
|
edgeIter = iterTriangles->getEdge();
|
||||||
//LogManager::getSingleton().logMessage("Edge Target " + StringConverter::toString(edgeIter->target->position.x) + "," + StringConverter::toString(edgeIter->target->position.y) + "," + StringConverter::toString(edgeIter->target->position.z));
|
//LogManager::getSingleton().logMessage("Edge Target " + StringConverter::toString(edgeIter->target->position.x) + "," + StringConverter::toString(edgeIter->target->position.y) + "," + StringConverter::toString(edgeIter->target->position.z));
|
||||||
iterVertex = find(vertexData.begin(), vertexData.end(), *(edgeIter->target));
|
iterVertex = find(vertexData.begin(), vertexData.end(), *(edgeIter->target));
|
||||||
//LogManager::getSingleton().logMessage("");
|
//LogManager::getSingleton().logMessage("");
|
||||||
|
@ -8,6 +8,16 @@ namespace Ogre
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const SurfaceEdgeIterator& SurfaceTriangle::getEdge(void) const
|
||||||
|
{
|
||||||
|
return edge;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SurfaceTriangle::setEdge(const SurfaceEdgeIterator& edgeToSet)
|
||||||
|
{
|
||||||
|
edge = edgeToSet;
|
||||||
|
}
|
||||||
|
|
||||||
/*std::string SurfaceTriangle::toString(void)
|
/*std::string SurfaceTriangle::toString(void)
|
||||||
{
|
{
|
||||||
std::stringstream ss;
|
std::stringstream ss;
|
||||||
@ -35,16 +45,11 @@ namespace Ogre
|
|||||||
|
|
||||||
bool operator == (const SurfaceTriangle& lhs, const SurfaceTriangle& rhs)
|
bool operator == (const SurfaceTriangle& lhs, const SurfaceTriangle& rhs)
|
||||||
{
|
{
|
||||||
return lhs.edge == rhs.edge;
|
return (*lhs.edge == *rhs.edge);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool operator < (const SurfaceTriangle& lhs, const SurfaceTriangle& rhs)
|
bool operator < (const SurfaceTriangle& lhs, const SurfaceTriangle& rhs)
|
||||||
{
|
{
|
||||||
return (*lhs.edge < *rhs.edge);
|
return (*lhs.edge < *rhs.edge);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*bool operator < (const SurfaceTriangleIterator& lhs, const SurfaceTriangleIterator& rhs)
|
|
||||||
{
|
|
||||||
return (*lhs) < (*rhs);
|
|
||||||
}*/
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user