Go to the SVN repository for this file.
46 size_te1 =
AddEdge(idx1, idx2);
47 size_te2 =
AddEdge(idx2, idx3);
48 size_te3 =
AddEdge(idx3, idx1);
57 floatmin_dist = 1e10f;
58 size_tmin_idx = (size_t)-1;
62 if(dist < min_dist) {
68 if(min_dist > 1e-6f) {
82edge.
Set(vert2, vert1);
85vector<CVect2<size_t> >::iterator iter;
89 return(
size_t(iter -
m_Edges.begin()));
99vector<int> edge_tris(
m_Edges.size(), 0);
103 for(
intj = 0; j < 3; ++j)
107vector<size_t> unshared_edges;
108 for(
i= 0;
i< edge_tris.size(); ++
i) {
109 if(edge_tris[
i] == 1)
110unshared_edges.push_back(
i);
113vector<size_t> perimeter_vertices;
114vector<CVect2<float> > perimeter;
121 if(unshared_edges.size() < 3)
124 size_tfirst_vert =
m_Edges[unshared_edges.back()][0];
125 size_tlast_vert =
m_Edges[unshared_edges.back()][1];
127perimeter_vertices.push_back(first_vert);
128perimeter_vertices.push_back(last_vert);
130unshared_edges.pop_back();
132 while(!
done&& unshared_edges.size() > 0) {
135 for(
i= 0;
i< unshared_edges.size() && next_edge == -1; ++
i) {
136 if(
m_Edges[unshared_edges[
i]][0] == last_vert) {
137last_vert =
m_Edges[unshared_edges[
i]][1];
138 if(last_vert == first_vert)
141perimeter_vertices.push_back(last_vert);
143next_edge = (
int)
i;
145 else if(
m_Edges[unshared_edges[
i]][1] == last_vert) {
146last_vert =
m_Edges[unshared_edges[
i]][0];
147 if(last_vert == first_vert)
150perimeter_vertices.push_back(last_vert);
152next_edge = (
int)
i;
155 if(next_edge != -1) {
156unshared_edges.erase(unshared_edges.begin() + next_edge);
163 if(unshared_edges.size() == 0) {
164 for(
i= 0;
i< perimeter_vertices.size(); ++
i)
165perimeter.push_back(
m_Vertices[perimeter_vertices[
i]]);
std::vector< CVect3< size_t > > m_Triangles
std::vector< CVect2< float > > m_Vertices
size_t AddTri(CVect2< float > &v1p, CVect2< float > &v2p, CVect2< float > &v3p)
size_t AddVertex(CVect2< float > &v)
std::vector< CVect2< float > > GetPerimiter() const
returns empty vec if no perimeter can be found.
std::vector< CVect2< size_t > > m_Edges
size_t AddEdge(size_t vert1, size_t vert2)
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
unsigned int
A callback function used to compare two keys in a database.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4