53 if ( b==NULL)
return NULL;
69 std::cout <<
"\nFound a seed at blue vertex ("
74 std::cout <<
"vertex (" << gpane->
get_point( g->origin()) <<
")\n";
77 std::cout <<
"edge (" << gpane->
get_point( g->origin()) <<
"), ("
78 << gpane->
get_point( g->destination()) <<
")\n";
85 }
while ( (gt = gt->
next()) != g);
86 std::cout << std::endl;
92 std::cout << std::endl;
108 Real sq_dist = 1.e30;
114 std::vector<RFC_Pane_overlay*> ps;
117 for ( std::vector<RFC_Pane_overlay*>::iterator
118 pit=ps.begin(); pit != ps.end(); ++pit) {
121 for ( HDS::Vertex_iterator vit=pane.
hds().vertices_begin();
122 vit!=pane.
hds().vertices_end(); ++vit)
123 if ( vit->halfedge() && vit->halfedge()->destination() == &*vit) {
126 if ( sq_d < sq_dist) { sq_dist = sq_d; w = &*vit; }
130 if ( w == NULL)
return;
138 std::queue< Halfedge*>
q;
139 std::list< Halfedge*> hlist;
148 while ( !q.empty()) {
149 h = q.front(); q.pop();
164 acc.
mark(h1); hlist.push_back( h1);
170 while ( !hlist.empty())
171 {
acc.
unmark( hlist.front()); hlist.pop_front(); }
Halfedge * get_next(Halfedge *h) const
bool is_primary(const Vertex *v) const
Halfedge * get_opposite(Halfedge *h) const
RFC_Pane_overlay * get_pane(Vertex *v) const
const Vector_3 & get_normal(const Halfedge *h) const
bool marked(const Halfedge *h) const
Vector_3 get_face_normal(const Halfedge *b, const Point_2 &nc, int scheme=0) const
void unmark(Halfedge *h) const
void panes(std::vector< Pane * > &ps)
Get a vector of local panes contained in the window.
Halfedge * get_halfedge(Vertex *v) const
Vertex_overlay * origin()
*********************************************************************Illinois Open Source License ****University of Illinois NCSA **Open Source License University of Illinois All rights reserved ****Developed free of to any person **obtaining a copy of this software and associated documentation to deal with the Software without including without limitation the rights to and or **sell copies of the and to permit persons to whom the **Software is furnished to do subject to the following this list of conditions and the following disclaimers ****Redistributions in binary form must reproduce the above **copyright this list of conditions and the following **disclaimers in the documentation and or other materials **provided with the distribution ****Neither the names of the Center for Simulation of Advanced the University of nor the names of its **contributors may be used to endorse or promote products derived **from this Software without specific prior written permission ****THE SOFTWARE IS PROVIDED AS WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **ARISING OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE v
const Point_3 & get_point(int id) const
#define RFC_END_NAME_SPACE
void get_green_parent(const Vertex *v, const Halfedge *b, Halfedge **o, Parent_type *t, Point_2 *nc)
#define RFC_BEGIN_NAME_SPACE
Real sq_length(const Halfedge &h) const
bool project_onto_element(const Point_3 &p, Halfedge **g, Parent_type *pt, Vector_3 dir, Point_2 *nc_out, const Real eps_p, Real eps_np=-1.) const
HDS_accessor< Tag_true > acc
Halfedge_overlay * next()
void mark(Halfedge *h) const
const Halfedge * get_an_unmarked_halfedge() const
Point_3 get_point(const Halfedge *b, const Point_2S &nc) const
Some basic geometric data types.
bool is_border(const Halfedge *h) const
void set_parent(Halfedge *h, const Point_2 &p, int color)
Vector_3 & get_normal(int v)
SURF::Vector_2< Real > Point_2