% +------------------------------------------------------------------------+ % | Reference manual page: VisibilityComplexEdge.tex % +------------------------------------------------------------------------+ % | Last revision: 09.07.2002 % | Author : Pierre Angelier % | Maintainer: Laurent Rineau % | Package: Visibility_complex % +------------------------------------------------------------------------+ \ccRefPageBegin %%RefPage: end of header, begin of main body % +----------------------------------------------------------------------------+ \begin{ccRefConcept}{VisibilityComplexEdge} \label{pageVCEdgeRef} % +----------------------------------------------------------------------------+ \ccDefinition The concept \ccRefName\ represents the edge class in the visibility complex. It defines the minimal requirements for the \ccc{Edge} type in the \ccc{VisibilityComplex} concept. It is also required in the \ccc{Edge_wrapper<_Vc,_Tr>} member class template of an items class, see the \ccc{VisibilityComplex_Items} concept. In addition to the requirement below, the concept \ccRefName\ must inherit from the \ccc{Arc} concept \ccIndexMainItem[c]{Arc}. % +----------------------------------------------------------------------------+ % ------------------------------------------------------------------------------ \ccInheritsFrom \ccRefConceptPage{Arc}\\ % ------------------------------------------------------------------------------ % ------------------------------------------------------------------------------ \ccTypes \ccThree{typedef Edge::Vertex_handle}{Vertex_handle;}{} \ccThreeToTwo \ccNestedType{Gt} {geometric traits class. } \ccGlue \ccNestedType{Vertex}{model of \ccc{Vertex}.} \ccGlue \ccNestedType{Edge}{model of \ccc{Edge}.} \ccGlue \ccNestedType{Face}{model of \ccc{Face}.} \ccNestedType{Vertex_handle}{handle to vertex.} \ccGlue \ccNestedType{Edge_handle}{handle to halfedge.} \ccGlue \ccNestedType{Face_handle}{handle to face.} % ------------------------------------------------------------------------------ % ------------------------------------------------------------------------------ \ccThree{Vertex_handle}{void v.set_inf(Vertex_handle v);}{} \ccThreeToTwo % ------------------------------------------------------------------------------ \ccCreation \ccCreationVariable{e} \ccConstructor{Edge();}{default constructor.} \ccConstructor{Edge(bool s, Disk_handle p);} { creates a edge with positive sign if $s$ is true and negative otherwise. The underlying arc is the complete boundary of the disk $p$. } \ccConstructor{Edge(Vertex_handle v, Vertex_handle w , Disk_handle p);} { creates an edge on disk $p$ whose source is $v$ and sink $w$. The underlying arc is defined by the extremities of $v$ and $w$ on $p$. } % ------------------------------------------------------------------------------ % ------------------------------------------------------------------------------ \ccOperations \ccTagFullDeclarations \ccMethod{Face_handle dl(); const}{} \ccGlue \ccMethod{Face_handle dr(); const}{} \ccGlue \ccMethod{Face_handle ul(); const}{} \ccGlue \ccMethod{Face_handle ur(); const} { returns a handle to one of the three faces adjacent to the edge \ccVar. For a positive (resp. negative) edge, \ccc{dr()} and \ccc{dl()} (resp. \ccc{ur()} and \ccc{ul()}) return the same \ccc{Face_handle}.} \ccMethod{Face_handle face(); const} {returns the unique face adjacent to \ccVar\ if \ccVar\ is a constraint edge. Otherwise $0$ is returned.} \ccMethod{void set_adjacent_faces(Face_handle f0,Face_handle f1,Face_handle f2);} {set \ccc{f0,f1,f2} as the adjacent faces of \ccVar. For a positive edge, \ccc{f0 = dl() = dr()}, \ccc{f1 = ur()} and \ccc{f2 = ul()}. For a negative edge \ccc{f0 = dl()}, \ccc{f1 = dr()} and \ccc{f2 = ul() = ur()}.} \ccMethod{Vertex_handle sup(); const} {returns the sink vertex of \ccVar.} \ccGlue \ccMethod{Vertex_handle inf(); const} {returns the source vertex of \ccVar.} \ccGlue \ccMethod{void set_inf(Vertex_handle v);} {sets the source vertex of \ccVar\ to $v$ and sets the \ccc{ccw_edge} of $v$ to \ccVar.} \ccGlue \ccMethod{void set_sup(Vertex_handle v);} {sets the sink vertex of \ccVar\ to $v$ and sets the \ccc{cw_edge} of $v$ to \ccVar.} % ------------------------------------------------------------------------------ % ------------------------------------------------------------------------------ \ccHasModels \ccRefIdfierPage{CGAL::Visibility_complex_edge_base} % ------------------------------------------------------------------------------ % ------------------------------------------------------------------------------ \ccSeeAlso \ccRefConceptPage{Arc} \\ \ccRefConceptPage{VisibilityComplex} \\ \ccRefConceptPage{VisibilityComplexItems}\\ \ccRefConceptPage{VisibilityComplexVertex}\\ \ccRefConceptPage{VisibilityComplexFace} % ------------------------------------------------------------------------------ % +----------------------------------------------------------------------------+ \ccTagDefaults \end{ccRefConcept} \ccRefPageEnd % +----------------------------------------------------------------------------+