Main Page | Modules | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | Related Pages

edge.cpp

00001 /*: 00002 ** edge.cpp - edge and hedge objects 00003 ** 00004 ** Copyright (C) 2004 Luiz Velho. 00005 */ 00006 00007 #include <algorithm> 00008 #include "a48.h" 00009 00010 using namespace std; 00011 using namespace A48; 00012 00013 00019 Edge::Edge(Vertex *p0, Vertex *p1) 00020 { 00021 h_[0].set_org(p0); h_[1].set_org(p1); 00022 h_[0].set_face(NULL); h_[1].set_face(NULL);; 00023 h_[0].set_next(NULL); h_[1].set_next(NULL); 00024 h_[0].set_edge(this); h_[1].set_edge(this); 00025 } 00026 00034 Hedge* Edge::hedge(int i) 00035 { 00036 switch (i) { 00037 case 0: return &h_[0]; 00038 case 1: return &h_[1]; 00039 } 00040 throw Error("edge n"); 00041 } 00042 00047 Hedge* Hedge::mate() 00048 { 00049 return (this == e_->hedge(0))? e_->hedge(1): e_->hedge(0); 00050 }; 00051 00058 Hedge* Hedge::reuse(Vertex *v0, Vertex *v1) 00059 { 00060 set_org(v0); mate()->set_org(v1); 00061 set_next(NULL); mate()->set_next(NULL); 00062 set_face(NULL); mate()->set_face(NULL); 00063 return this; 00064 } 00065 00070 bool Hedge::is_bdry() 00071 { 00072 return edge()->is_bdry(); 00073 } 00074 00080 int Hedge::level() { 00081 return max(org()->level(), dst()->level()); 00082 }

Generated on Mon Oct 11 19:32:05 2004 for A48 by doxygen 1.3.7