?? vertex.cpp
字號(hào):
// Vertex.cpp: implementation of the Vertex class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "Subdiv.h"
#include "Vertex.h"
#include <iostream>
#include <vector>
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
/*
Vertex::Vertex()
{
}
*/
Vertex::Vertex(double x, double y, double z, int idx)
{
m_v.x = x;
m_v.y = y;
m_v.z = z;
m_index = idx;
}
Vertex::Vertex(Vector3d &v, int idx)
{
m_v = v;
m_index = idx;
}
Vertex::~Vertex()
{
reset();
}
// check if repeat, if not then add
/*
*/
void Vertex::addAdjEdge(Mesh::EDGEPOS ep)
{
// safe code for none manifold
bool blexist = false;
for(ADJEDGESET::iterator itr = m_adjEdgePosSet.begin(); itr != m_adjEdgePosSet.end(); itr ++)
if(*(*itr) == *ep)
{
blexist = true;
break;
}
if( !blexist )
m_adjEdgePosSet.push_back(ep);
}
/* for(ADJEDGESET::iterator itr = m_adjEdgePosSet.begin(); itr != m_adjEdgePosSet.end(); itr ++)
if((*itr) == ep)
{
blexist = true;
break;
}
if( !blexist )
m_adjEdgePosSet.push_back(ep);
*/
// cout << "V " << m_index << ":addAdjEdge: edge<" << ep->m_bgVertexIdx + 1 << ","
// << ep->m_edVertexIdx + 1 << "> insertion " << (blexist? "failed" : "succeed") << endl;
/*
for(int i = 0; i < m_adjEdgePosSet.size(); i ++)
{
Edge e1 = *ep;
Edge e2 = *(m_adjEdgePosSet[i]);
ASSERT( (ep == m_adjEdgePosSet[i]) == (*ep == *(m_adjEdgePosSet[i])) );
if(*ep == *(m_adjEdgePosSet[i]))
{
blexist = true;
break;
}
}
*/
/* inline
void Vertex::addAdjFace(int fi)
{
m_adjFaceIdxSet.push_back(fi);
}*/
const Vector3d& Vertex::getVertex3d() const
{
return m_v;
}
void Vertex::dump() const
{
cout << "DUMP: Vertex " << m_index + 1 << " (" << m_v.x << "," << m_v.y << "," << m_v.z << ")"
<< " newVertexIdx:" << m_newVertexPointIdx << endl;
cout << " AdjEdges: " ;
for(Vertex::ADJEDGESET::const_iterator itr = m_adjEdgePosSet.begin(); itr != m_adjEdgePosSet.end(); itr ++)
cout << "<" << (*itr)->m_bgVertexIdx + 1 << "," << (*itr)->m_edVertexIdx + 1<< "> " ;
cout << " AdjFaces: " ;
for(vector<int>::const_iterator itr2 = m_adjFaceIdxSet.begin(); itr2 != m_adjFaceIdxSet.end(); itr2 ++)
cout << (*itr2) + 1<< " ";
cout << endl;
}
void Vertex::reset()
{
m_adjFaceIdxSet.clear();
m_adjEdgePosSet.clear();
}
bool Vertex::isOnBoundary()
{
return( m_adjFaceIdxSet.size() != m_adjEdgePosSet.size());
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -