<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >Edges</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="GTS Library Reference Manual" HREF="book1.html"><LINK REL="UP" TITLE="Geometrical Object Hierarchy" HREF="c2915.html"><LINK REL="PREVIOUS" TITLE="Segments" HREF="gts-segments.html"><LINK REL="NEXT" TITLE="Triangles" HREF="gts-triangles.html"><STYLE TYPE="text/css" >.synopsis, .classsynopsis { background: #eeeeee; border: solid 1px #aaaaaa; padding: 0.5em; } .programlisting { background: #eeeeff; border: solid 1px #aaaaff; padding: 0.5em; } .variablelist { padding: 4px; margin-left: 3em; } .navigation { background: #ffeeee; border: solid 1px #ffaaaa; margin-top: 0.5em; margin-bottom: 0.5em; } .navigation a { color: #770000; } .navigation a:visited { color: #550000; } .navigation .title { font-size: 200%; }</STYLE ></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><TABLE WIDTH="100%" CLASS="navigation" SUMMARY="Navigation header" CELLPADDING="2" CELLSPACING="2" ><TR VALIGN="middle" ><TD ><A ACCESSKEY="p" HREF="gts-segments.html" ><IMG SRC="left.png" WIDTH="24" HEIGHT="24" BORDER="0" ALT="Prev"></A ></TD ><TD ><A ACCESSKEY="u" HREF="c2915.html" ><IMG SRC="up.png" WIDTH="24" HEIGHT="24" BORDER="0" ALT="Up"></A ></TD ><TD ><A ACCESSKEY="h" HREF="book1.html" ><IMG SRC="home.png" WIDTH="24" HEIGHT="24" BORDER="0" ALT="Home"></A ></TD ><TH WIDTH="100%" align="center" >GTS Library Reference Manual</TH ><TD ><A ACCESSKEY="n" HREF="gts-triangles.html" ><IMG SRC="right.png" WIDTH="24" HEIGHT="24" BORDER="0" ALT="Next"></A ></TD ></TR ></TABLE ><H1 ><A NAME="GTS-EDGES" ></A >Edges</H1 ><DIV CLASS="REFNAMEDIV" ><A NAME="AEN6572" ></A ><H2 >Name</H2 >Edges -- edge object and related functions.</DIV ><DIV CLASS="REFSYNOPSISDIV" ><A NAME="AEN6575" ></A ><H2 >Synopsis</H2 ><PRE CLASS="SYNOPSIS" > #include <gts.h> #define <A HREF="gts-edges.html#GTS-EDGE-CLASS:CAPS" >GTS_EDGE_CLASS</A > (klass) #define <A HREF="gts-edges.html#GTS-EDGE:CAPS" >GTS_EDGE</A > (obj) #define <A HREF="gts-edges.html#GTS-IS-EDGE:CAPS" >GTS_IS_EDGE</A > (obj) <A HREF="gts-edges.html#GTSEDGECLASS" >GtsEdgeClass</A >; <A HREF="gts-edges.html#GTSEDGE" >GtsEdge</A >; <A HREF="gts-edges.html#GTSEDGECLASS" >GtsEdgeClass</A >* <A HREF="gts-edges.html#GTS-EDGE-CLASS" >gts_edge_class</A > (void); <A HREF="gts-edges.html#GTSEDGE" >GtsEdge</A >* <A HREF="gts-edges.html#GTS-EDGE-NEW" >gts_edge_new</A > (<A HREF="gts-edges.html#GTSEDGECLASS" >GtsEdgeClass</A > *klass, <A HREF="gts-vertices.html#GTSVERTEX" >GtsVertex</A > *v1, <A HREF="gts-vertices.html#GTSVERTEX" >GtsVertex</A > *v2); <GTKDOCLINK HREF="VOID" >void</GTKDOCLINK > <A HREF="gts-edges.html#GTS-EDGE-REPLACE" >gts_edge_replace</A > (<A HREF="gts-edges.html#GTSEDGE" >GtsEdge</A > *e, <A HREF="gts-edges.html#GTSEDGE" >GtsEdge</A > *with); #define <A HREF="gts-edges.html#GTS-EDGE-IS-UNATTACHED" >gts_edge_is_unattached</A > (s) <A HREF="gts-edges.html#GTSEDGE" >GtsEdge</A >* <A HREF="gts-edges.html#GTS-EDGE-IS-DUPLICATE" >gts_edge_is_duplicate</A > (<A HREF="gts-edges.html#GTSEDGE" >GtsEdge</A > *e); <A HREF="gts-faces.html#GTSFACE" >GtsFace</A >* <A HREF="gts-edges.html#GTS-EDGE-HAS-PARENT-SURFACE" >gts_edge_has_parent_surface</A > (<A HREF="gts-edges.html#GTSEDGE" >GtsEdge</A > *e, <A HREF="gts-surfaces.html#GTSSURFACE" >GtsSurface</A > *surface); <A HREF="gts-faces.html#GTSFACE" >GtsFace</A >* <A HREF="gts-edges.html#GTS-EDGE-HAS-ANY-PARENT-SURFACE" >gts_edge_has_any_parent_surface</A > (<A HREF="gts-edges.html#GTSEDGE" >GtsEdge</A > *e); <A HREF="gts-faces.html#GTSFACE" >GtsFace</A >* <A HREF="gts-edges.html#GTS-EDGE-IS-BOUNDARY" >gts_edge_is_boundary</A > (<A HREF="gts-edges.html#GTSEDGE" >GtsEdge</A > *e, <A HREF="gts-surfaces.html#GTSSURFACE" >GtsSurface</A > *surface); <GTKDOCLINK HREF="GUINT" >guint</GTKDOCLINK > <A HREF="gts-edges.html#GTS-EDGE-IS-CONTACT" >gts_edge_is_contact</A > (<A HREF="gts-edges.html#GTSEDGE" >GtsEdge</A > *e); <GTKDOCLINK HREF="GBOOLEAN" >gboolean</GTKDOCLINK > <A HREF="gts-edges.html#GTS-EDGE-BELONGS-TO-TETRAHEDRON" >gts_edge_belongs_to_tetrahedron</A > (<A HREF="gts-edges.html#GTSEDGE" >GtsEdge</A > *e); <GTKDOCLINK HREF="GUINT" >guint</GTKDOCLINK > <A HREF="gts-edges.html#GTS-EDGE-FACE-NUMBER" >gts_edge_face_number</A > (<A HREF="gts-edges.html#GTSEDGE" >GtsEdge</A > *e, <A HREF="gts-surfaces.html#GTSSURFACE" >GtsSurface</A > *s); <GTKDOCLINK HREF="GBOOLEAN" >gboolean</GTKDOCLINK > <A HREF="gts-edges.html#GTS-EDGE-MANIFOLD-FACES" >gts_edge_manifold_faces</A > (<A HREF="gts-edges.html#GTSEDGE" >GtsEdge</A > *e, <A HREF="gts-surfaces.html#GTSSURFACE" >GtsSurface</A > *s, <A HREF="gts-faces.html#GTSFACE" >GtsFace</A > **f1, <A HREF="gts-faces.html#GTSFACE" >GtsFace</A > **f2); <GTKDOCLINK HREF="GBOOLEAN" >gboolean</GTKDOCLINK > (<A HREF="gts-edges.html#GTSENCROACHFUNC" >*GtsEncroachFunc</A >) (<A HREF="gts-vertices.html#GTSVERTEX" >GtsVertex</A > *v, <A HREF="gts-edges.html#GTSEDGE" >GtsEdge</A > *e, <A HREF="gts-surfaces.html#GTSSURFACE" >GtsSurface</A > *s, <GTKDOCLINK HREF="GPOINTER" >gpointer</GTKDOCLINK > data); <A HREF="gts-vertices.html#GTSVERTEX" >GtsVertex</A >* <A HREF="gts-edges.html#GTS-EDGE-IS-ENCROACHED" >gts_edge_is_encroached</A > (<A HREF="gts-edges.html#GTSEDGE" >GtsEdge</A > *e, <A HREF="gts-surfaces.html#GTSSURFACE" >GtsSurface</A > *s, <A HREF="gts-edges.html#GTSENCROACHFUNC" >GtsEncroachFunc</A > encroaches, <GTKDOCLINK HREF="GPOINTER" >gpointer</GTKDOCLINK > data); <GTKDOCLINK HREF="GLIST" >GList</GTKDOCLINK >* <A HREF="gts-edges.html#GTS-EDGES-MERGE" >gts_edges_merge</A > (<GTKDOCLINK HREF="GLIST" >GList</GTKDOCLINK > *edges); <GTKDOCLINK HREF="GSLIST" >GSList</GTKDOCLINK >* <A HREF="gts-edges.html#GTS-EDGES-FROM-VERTICES" >gts_edges_from_vertices</A > (<GTKDOCLINK HREF="GSLIST" >GSList</GTKDOCLINK > *vertices, <A HREF="gts-surfaces.html#GTSSURFACE" >GtsSurface</A > *parent); <GTKDOCLINK HREF="VOID" >void</GTKDOCLINK > <A HREF="gts-edges.html#GTS-EDGE-SWAP" >gts_edge_swap</A > (<A HREF="gts-edges.html#GTSEDGE" >GtsEdge</A > *e, <A HREF="gts-surfaces.html#GTSSURFACE" >GtsSurface</A > *s);</PRE ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN6648" ></A ><H2 >Description</H2 ><P >Edges are derived from <A HREF="gts-segments.html#GTSSEGMENT" ><SPAN CLASS="TYPE" >GtsSegment</SPAN ></A >. They are used to define <A HREF="gts-triangles.html#GTSTRIANGLE" ><SPAN CLASS="TYPE" >GtsTriangle</SPAN ></A >.</P ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN6655" ></A ><H2 >Details</H2 ><DIV CLASS="REFSECT2" ><A NAME="AEN6657" ></A ><H3 ><A NAME="GTS-EDGE-CLASS:CAPS" ></A >GTS_EDGE_CLASS()</H3 ><PRE CLASS="PROGRAMLISTING" >#define GTS_EDGE_CLASS(klass)</PRE ><P ></P ><P ></P ><TABLE CLASS="variablelist" BORDER="0" CELLSPACING="0" CELLPADDING="4" ><TBODY ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN6665"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >klass</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > </P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN6670" ></A ><H3 ><A NAME="GTS-EDGE:CAPS" ></A >GTS_EDGE()</H3 ><PRE CLASS="PROGRAMLISTING" >#define GTS_EDGE(obj)</PRE ><P ></P ><P ></P ><TABLE CLASS="variablelist" BORDER="0" CELLSPACING="0" CELLPADDING="4" ><TBODY ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN6678"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >obj</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > </P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN6683" ></A ><H3 ><A NAME="GTS-IS-EDGE:CAPS" ></A >GTS_IS_EDGE()</H3 ><PRE CLASS="PROGRAMLISTING" >#define GTS_IS_EDGE(obj)</PRE ><P ></P ><P ></P ><TABLE CLASS="variablelist" BORDER="0" CELLSPACING="0" CELLPADDING="4" ><TBODY ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN6691"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >obj</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > </P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN6696" ></A ><H3 ><A NAME="GTSEDGECLASS" ></A >GtsEdgeClass</H3 ><PRE CLASS="PROGRAMLISTING" >typedef struct { GtsSegmentClass parent_class; } GtsEdgeClass;</PRE ><P >The edge class. No virtual function associated.</P ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN6703" ></A ><H3 ><A NAME="GTSEDGE" ></A >GtsEdge</H3 ><PRE CLASS="PROGRAMLISTING" >typedef struct { GtsSegment segment; GSList * triangles; } GtsEdge;</PRE ><P >The edge object.</P ><P ></P ><TABLE CLASS="variablelist" BORDER="0" CELLSPACING="0" CELLPADDING="4" ><TBODY ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN6711"><SPAN STYLE="white-space: nowrap" ><A HREF="gts-segments.html#GTSSEGMENT" >GtsSegment</A > <CODE CLASS="STRUCTFIELD" >segment</CODE >;</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P >The parent object.</P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN6717"><SPAN STYLE="white-space: nowrap" ><GTKDOCLINK HREF="GSLIST" >GSList</GTKDOCLINK > *<CODE CLASS="STRUCTFIELD" >triangles</CODE >;</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P >List of <A HREF="gts-triangles.html#GTSTRIANGLE" ><SPAN CLASS="TYPE" >GtsTriangle</SPAN ></A > using this edge. </P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN6725" ></A ><H3 ><A NAME="GTS-EDGE-CLASS" ></A >gts_edge_class ()</H3 ><PRE CLASS="PROGRAMLISTING" ><A HREF="gts-edges.html#GTSEDGECLASS" >GtsEdgeClass</A >* gts_edge_class (void);</PRE ><P ></P ><P ></P ><P ></P ><TABLE CLASS="variablelist" BORDER="0" CELLSPACING="0" CELLPADDING="4" ><TBODY ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN6735"><SPAN STYLE="white-space: nowrap" ><SPAN CLASS="emphasis" ><I CLASS="EMPHASIS" >Returns</I ></SPAN > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > the <A HREF="gts-edges.html#GTSEDGECLASS" ><SPAN CLASS="TYPE" >GtsEdgeClass</SPAN ></A >.</P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN6742" ></A ><H3 ><A NAME="GTS-EDGE-NEW" ></A >gts_edge_new ()</H3 ><PRE CLASS="PROGRAMLISTING" ><A HREF="gts-edges.html#GTSEDGE" >GtsEdge</A >* gts_edge_new (<A HREF="gts-edges.html#GTSEDGECLASS" >GtsEdgeClass</A > *klass, <A HREF="gts-vertices.html#GTSVERTEX" >GtsVertex</A > *v1, <A HREF="gts-vertices.html#GTSVERTEX" >GtsVertex</A > *v2);</PRE ><P ></P ><P ></P ><P ></P ><TABLE CLASS="variablelist" BORDER="0" CELLSPACING="0" CELLPADDING="4" ><TBODY ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN6755"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >klass</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a <A HREF="gts-edges.html#GTSEDGECLASS" ><SPAN CLASS="TYPE" >GtsEdgeClass</SPAN ></A >.</P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN6762"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >v1</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a <A HREF="gts-vertices.html#GTSVERTEX" ><SPAN CLASS="TYPE" >GtsVertex</SPAN ></A >.</P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN6769"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >v2</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a <A HREF="gts-vertices.html#GTSVERTEX" ><SPAN CLASS="TYPE" >GtsVertex</SPAN ></A >.</P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN6776"><SPAN STYLE="white-space: nowrap" ><SPAN CLASS="emphasis" ><I CLASS="EMPHASIS" >Returns</I ></SPAN > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a new <A HREF="gts-edges.html#GTSEDGE" ><SPAN CLASS="TYPE" >GtsEdge</SPAN ></A > linking <CODE CLASS="PARAMETER" >v1</CODE > and <CODE CLASS="PARAMETER" >v2</CODE >.</P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN6785" ></A ><H3 ><A NAME="GTS-EDGE-REPLACE" ></A >gts_edge_replace ()</H3 ><PRE CLASS="PROGRAMLISTING" ><GTKDOCLINK HREF="VOID" >void</GTKDOCLINK > gts_edge_replace (<A HREF="gts-edges.html#GTSEDGE" >GtsEdge</A > *e, <A HREF="gts-edges.html#GTSEDGE" >GtsEdge</A > *with);</PRE ><P >Replaces <CODE CLASS="PARAMETER" >e</CODE > with <CODE CLASS="PARAMETER" >with</CODE >. For each triangle which uses <CODE CLASS="PARAMETER" >e</CODE > as an edge, <CODE CLASS="PARAMETER" >e</CODE > is replaced with <CODE CLASS="PARAMETER" >with</CODE >. The <CODE CLASS="PARAMETER" >with</CODE >->triangles list is updated appropriately and the <CODE CLASS="PARAMETER" >e</CODE >->triangles list is freed and set to <TT CLASS="LITERAL" >NULL</TT >.</P ><P ></P ><P ></P ><TABLE CLASS="variablelist" BORDER="0" CELLSPACING="0" CELLPADDING="4" ><TBODY ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN6805"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >e</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a <A HREF="gts-edges.html#GTSEDGE" ><SPAN CLASS="TYPE" >GtsEdge</SPAN ></A >.</P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN6812"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >with</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a <A HREF="gts-edges.html#GTSEDGE" ><SPAN CLASS="TYPE" >GtsEdge</SPAN ></A >.</P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN6819" ></A ><H3 ><A NAME="GTS-EDGE-IS-UNATTACHED" ></A >gts_edge_is_unattached()</H3 ><PRE CLASS="PROGRAMLISTING" >#define gts_edge_is_unattached(s) ((s)->triangles == NULL ? TRUE : FALSE)</PRE ><P >Evaluates to <TT CLASS="LITERAL" >TRUE</TT > if no triangles uses <CODE CLASS="PARAMETER" >s</CODE > as an edge, <TT CLASS="LITERAL" >FALSE</TT > otherwise.</P ><P ></P ><P ></P ><TABLE CLASS="variablelist" BORDER="0" CELLSPACING="0" CELLPADDING="4" ><TBODY ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN6831"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >s</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a <A HREF="gts-edges.html#GTSEDGE" ><SPAN CLASS="TYPE" >GtsEdge</SPAN ></A >.</P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN6838" ></A ><H3 ><A NAME="GTS-EDGE-IS-DUPLICATE" ></A >gts_edge_is_duplicate ()</H3 ><PRE CLASS="PROGRAMLISTING" ><A HREF="gts-edges.html#GTSEDGE" >GtsEdge</A >* gts_edge_is_duplicate (<A HREF="gts-edges.html#GTSEDGE" >GtsEdge</A > *e);</PRE ><P ></P ><P ></P ><P ></P ><TABLE CLASS="variablelist" BORDER="0" CELLSPACING="0" CELLPADDING="4" ><TBODY ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN6849"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >e</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a <A HREF="gts-edges.html#GTSEDGE" ><SPAN CLASS="TYPE" >GtsEdge</SPAN ></A >.</P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN6856"><SPAN STYLE="white-space: nowrap" ><SPAN CLASS="emphasis" ><I CLASS="EMPHASIS" >Returns</I ></SPAN > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > the first <A HREF="gts-edges.html#GTSEDGE" ><SPAN CLASS="TYPE" >GtsEdge</SPAN ></A > different from <CODE CLASS="PARAMETER" >e</CODE > which shares the same endpoints or <TT CLASS="LITERAL" >NULL</TT > if there is none.</P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN6865" ></A ><H3 ><A NAME="GTS-EDGE-HAS-PARENT-SURFACE" ></A >gts_edge_has_parent_surface ()</H3 ><PRE CLASS="PROGRAMLISTING" ><A HREF="gts-faces.html#GTSFACE" >GtsFace</A >* gts_edge_has_parent_surface (<A HREF="gts-edges.html#GTSEDGE" >GtsEdge</A > *e, <A HREF="gts-surfaces.html#GTSSURFACE" >GtsSurface</A > *surface);</PRE ><P ></P ><P ></P ><P ></P ><TABLE CLASS="variablelist" BORDER="0" CELLSPACING="0" CELLPADDING="4" ><TBODY ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN6877"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >e</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a <A HREF="gts-edges.html#GTSEDGE" ><SPAN CLASS="TYPE" >GtsEdge</SPAN ></A >.</P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN6884"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >surface</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a <A HREF="gts-surfaces.html#GTSSURFACE" ><SPAN CLASS="TYPE" >GtsSurface</SPAN ></A >.</P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN6891"><SPAN STYLE="white-space: nowrap" ><SPAN CLASS="emphasis" ><I CLASS="EMPHASIS" >Returns</I ></SPAN > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a <A HREF="gts-faces.html#GTSFACE" ><SPAN CLASS="TYPE" >GtsFace</SPAN ></A > of <CODE CLASS="PARAMETER" >surface</CODE > having <CODE CLASS="PARAMETER" >e</CODE > as an edge, <TT CLASS="LITERAL" >NULL</TT > otherwise.</P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN6901" ></A ><H3 ><A NAME="GTS-EDGE-HAS-ANY-PARENT-SURFACE" ></A >gts_edge_has_any_parent_surface ()</H3 ><PRE CLASS="PROGRAMLISTING" ><A HREF="gts-faces.html#GTSFACE" >GtsFace</A >* gts_edge_has_any_parent_surface (<A HREF="gts-edges.html#GTSEDGE" >GtsEdge</A > *e);</PRE ><P ></P ><P ></P ><P ></P ><TABLE CLASS="variablelist" BORDER="0" CELLSPACING="0" CELLPADDING="4" ><TBODY ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN6912"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >e</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a <A HREF="gts-edges.html#GTSEDGE" ><SPAN CLASS="TYPE" >GtsEdge</SPAN ></A >.</P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN6919"><SPAN STYLE="white-space: nowrap" ><SPAN CLASS="emphasis" ><I CLASS="EMPHASIS" >Returns</I ></SPAN > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > <TT CLASS="LITERAL" >NULL</TT > if <CODE CLASS="PARAMETER" >e</CODE > is not an edge of any triangle or if all the faces having <CODE CLASS="PARAMETER" >e</CODE > has an edge do not belong to any surface, a <A HREF="gts-faces.html#GTSFACE" ><SPAN CLASS="TYPE" >GtsFace</SPAN ></A > belonging to a surface and having <CODE CLASS="PARAMETER" >e</CODE > as an edge.</P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN6930" ></A ><H3 ><A NAME="GTS-EDGE-IS-BOUNDARY" ></A >gts_edge_is_boundary ()</H3 ><PRE CLASS="PROGRAMLISTING" ><A HREF="gts-faces.html#GTSFACE" >GtsFace</A >* gts_edge_is_boundary (<A HREF="gts-edges.html#GTSEDGE" >GtsEdge</A > *e, <A HREF="gts-surfaces.html#GTSSURFACE" >GtsSurface</A > *surface);</PRE ><P ></P ><P ></P ><P ></P ><TABLE CLASS="variablelist" BORDER="0" CELLSPACING="0" CELLPADDING="4" ><TBODY ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN6942"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >e</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a <A HREF="gts-edges.html#GTSEDGE" ><SPAN CLASS="TYPE" >GtsEdge</SPAN ></A >.</P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN6949"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >surface</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a <A HREF="gts-surfaces.html#GTSSURFACE" ><SPAN CLASS="TYPE" >GtsSurface</SPAN ></A > or <TT CLASS="LITERAL" >NULL</TT >.</P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN6957"><SPAN STYLE="white-space: nowrap" ><SPAN CLASS="emphasis" ><I CLASS="EMPHASIS" >Returns</I ></SPAN > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > the unique <A HREF="gts-faces.html#GTSFACE" ><SPAN CLASS="TYPE" >GtsFace</SPAN ></A > (which belongs to <CODE CLASS="PARAMETER" >surface</CODE >) and which has <CODE CLASS="PARAMETER" >e</CODE > as an edge (i.e. <CODE CLASS="PARAMETER" >e</CODE > is a boundary edge (of <CODE CLASS="PARAMETER" >surface</CODE >)) or <TT CLASS="LITERAL" >NULL</TT > if there is more than one or no faces (belonging to <CODE CLASS="PARAMETER" >surface</CODE >) and with <CODE CLASS="PARAMETER" >e</CODE > as an edge.</P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN6971" ></A ><H3 ><A NAME="GTS-EDGE-IS-CONTACT" ></A >gts_edge_is_contact ()</H3 ><PRE CLASS="PROGRAMLISTING" ><GTKDOCLINK HREF="GUINT" >guint</GTKDOCLINK > gts_edge_is_contact (<A HREF="gts-edges.html#GTSEDGE" >GtsEdge</A > *e);</PRE ><P ></P ><P ></P ><P ></P ><TABLE CLASS="variablelist" BORDER="0" CELLSPACING="0" CELLPADDING="4" ><TBODY ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN6982"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >e</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a <A HREF="gts-edges.html#GTSEDGE" ><SPAN CLASS="TYPE" >GtsEdge</SPAN ></A >. </P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN6989"><SPAN STYLE="white-space: nowrap" ><SPAN CLASS="emphasis" ><I CLASS="EMPHASIS" >Returns</I ></SPAN > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > the number of sets of connected triangles sharing <CODE CLASS="PARAMETER" >e</CODE > as a contact edge. </P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN6995" ></A ><H3 ><A NAME="GTS-EDGE-BELONGS-TO-TETRAHEDRON" ></A >gts_edge_belongs_to_tetrahedron ()</H3 ><PRE CLASS="PROGRAMLISTING" ><GTKDOCLINK HREF="GBOOLEAN" >gboolean</GTKDOCLINK > gts_edge_belongs_to_tetrahedron (<A HREF="gts-edges.html#GTSEDGE" >GtsEdge</A > *e);</PRE ><P ></P ><P ></P ><P ></P ><TABLE CLASS="variablelist" BORDER="0" CELLSPACING="0" CELLPADDING="4" ><TBODY ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN7006"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >e</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a <A HREF="gts-edges.html#GTSEDGE" ><SPAN CLASS="TYPE" >GtsEdge</SPAN ></A >.</P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN7013"><SPAN STYLE="white-space: nowrap" ><SPAN CLASS="emphasis" ><I CLASS="EMPHASIS" >Returns</I ></SPAN > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > <TT CLASS="LITERAL" >TRUE</TT > if <CODE CLASS="PARAMETER" >e</CODE > is used by faces forming a tetrahedron, <TT CLASS="LITERAL" >FALSE</TT > otherwise.</P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN7021" ></A ><H3 ><A NAME="GTS-EDGE-FACE-NUMBER" ></A >gts_edge_face_number ()</H3 ><PRE CLASS="PROGRAMLISTING" ><GTKDOCLINK HREF="GUINT" >guint</GTKDOCLINK > gts_edge_face_number (<A HREF="gts-edges.html#GTSEDGE" >GtsEdge</A > *e, <A HREF="gts-surfaces.html#GTSSURFACE" >GtsSurface</A > *s);</PRE ><P ></P ><P ></P ><P ></P ><TABLE CLASS="variablelist" BORDER="0" CELLSPACING="0" CELLPADDING="4" ><TBODY ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN7033"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >e</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a <A HREF="gts-edges.html#GTSEDGE" ><SPAN CLASS="TYPE" >GtsEdge</SPAN ></A >.</P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN7040"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >s</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a <A HREF="gts-surfaces.html#GTSSURFACE" ><SPAN CLASS="TYPE" >GtsSurface</SPAN ></A >.</P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN7047"><SPAN STYLE="white-space: nowrap" ><SPAN CLASS="emphasis" ><I CLASS="EMPHASIS" >Returns</I ></SPAN > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > the number of faces using <CODE CLASS="PARAMETER" >e</CODE > and belonging to <CODE CLASS="PARAMETER" >s</CODE >.</P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN7054" ></A ><H3 ><A NAME="GTS-EDGE-MANIFOLD-FACES" ></A >gts_edge_manifold_faces ()</H3 ><PRE CLASS="PROGRAMLISTING" ><GTKDOCLINK HREF="GBOOLEAN" >gboolean</GTKDOCLINK > gts_edge_manifold_faces (<A HREF="gts-edges.html#GTSEDGE" >GtsEdge</A > *e, <A HREF="gts-surfaces.html#GTSSURFACE" >GtsSurface</A > *s, <A HREF="gts-faces.html#GTSFACE" >GtsFace</A > **f1, <A HREF="gts-faces.html#GTSFACE" >GtsFace</A > **f2);</PRE ><P >If <CODE CLASS="PARAMETER" >e</CODE > is a manifold edge of surface <CODE CLASS="PARAMETER" >s</CODE >, fills <CODE CLASS="PARAMETER" >f1</CODE > and <CODE CLASS="PARAMETER" >f2</CODE > with the faces belonging to <CODE CLASS="PARAMETER" >s</CODE > and sharing <CODE CLASS="PARAMETER" >e</CODE >.</P ><P ></P ><P ></P ><TABLE CLASS="variablelist" BORDER="0" CELLSPACING="0" CELLPADDING="4" ><TBODY ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN7074"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >e</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a <A HREF="gts-edges.html#GTSEDGE" ><SPAN CLASS="TYPE" >GtsEdge</SPAN ></A >.</P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN7081"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >s</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a <A HREF="gts-surfaces.html#GTSSURFACE" ><SPAN CLASS="TYPE" >GtsSurface</SPAN ></A >.</P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN7088"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >f1</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > pointer for first face.</P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN7093"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >f2</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > pointer for second face.</P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN7098"><SPAN STYLE="white-space: nowrap" ><SPAN CLASS="emphasis" ><I CLASS="EMPHASIS" >Returns</I ></SPAN > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > <TT CLASS="LITERAL" >TRUE</TT > if <CODE CLASS="PARAMETER" >e</CODE > is a manifold edge, <TT CLASS="LITERAL" >FALSE</TT > otherwise.</P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN7106" ></A ><H3 ><A NAME="GTSENCROACHFUNC" ></A >GtsEncroachFunc ()</H3 ><PRE CLASS="PROGRAMLISTING" ><GTKDOCLINK HREF="GBOOLEAN" >gboolean</GTKDOCLINK > (*GtsEncroachFunc) (<A HREF="gts-vertices.html#GTSVERTEX" >GtsVertex</A > *v, <A HREF="gts-edges.html#GTSEDGE" >GtsEdge</A > *e, <A HREF="gts-surfaces.html#GTSSURFACE" >GtsSurface</A > *s, <GTKDOCLINK HREF="GPOINTER" >gpointer</GTKDOCLINK > data);</PRE ><P ></P ><P ></P ><TABLE CLASS="variablelist" BORDER="0" CELLSPACING="0" CELLPADDING="4" ><TBODY ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN7119"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >v</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P ></P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN7124"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >e</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P ></P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN7129"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >s</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P ></P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN7134"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >data</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P ></P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN7139"><SPAN STYLE="white-space: nowrap" ><SPAN CLASS="emphasis" ><I CLASS="EMPHASIS" >Returns</I ></SPAN > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > </P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN7144" ></A ><H3 ><A NAME="GTS-EDGE-IS-ENCROACHED" ></A >gts_edge_is_encroached ()</H3 ><PRE CLASS="PROGRAMLISTING" ><A HREF="gts-vertices.html#GTSVERTEX" >GtsVertex</A >* gts_edge_is_encroached (<A HREF="gts-edges.html#GTSEDGE" >GtsEdge</A > *e, <A HREF="gts-surfaces.html#GTSSURFACE" >GtsSurface</A > *s, <A HREF="gts-edges.html#GTSENCROACHFUNC" >GtsEncroachFunc</A > encroaches, <GTKDOCLINK HREF="GPOINTER" >gpointer</GTKDOCLINK > data);</PRE ><P ></P ><P ></P ><P ></P ><TABLE CLASS="variablelist" BORDER="0" CELLSPACING="0" CELLPADDING="4" ><TBODY ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN7158"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >e</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a <A HREF="gts-edges.html#GTSEDGE" ><SPAN CLASS="TYPE" >GtsEdge</SPAN ></A >.</P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN7165"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >s</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a <A HREF="gts-surfaces.html#GTSSURFACE" ><SPAN CLASS="TYPE" >GtsSurface</SPAN ></A > describing a (constrained) Delaunay triangulation.</P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN7172"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >encroaches</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a <A HREF="gts-edges.html#GTSENCROACHFUNC" ><SPAN CLASS="TYPE" >GtsEncroachFunc</SPAN ></A >.</P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN7179"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >data</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > user data to be passed to <CODE CLASS="PARAMETER" >encroaches</CODE >.</P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN7185"><SPAN STYLE="white-space: nowrap" ><SPAN CLASS="emphasis" ><I CLASS="EMPHASIS" >Returns</I ></SPAN > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a <A HREF="gts-vertices.html#GTSVERTEX" ><SPAN CLASS="TYPE" >GtsVertex</SPAN ></A > belonging to <CODE CLASS="PARAMETER" >s</CODE > and encroaching upon <CODE CLASS="PARAMETER" >e</CODE > (as defined by <CODE CLASS="PARAMETER" >encroaches</CODE >) or <TT CLASS="LITERAL" >NULL</TT > if there is none. </P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN7196" ></A ><H3 ><A NAME="GTS-EDGES-MERGE" ></A >gts_edges_merge ()</H3 ><PRE CLASS="PROGRAMLISTING" ><GTKDOCLINK HREF="GLIST" >GList</GTKDOCLINK >* gts_edges_merge (<GTKDOCLINK HREF="GLIST" >GList</GTKDOCLINK > *edges);</PRE ><P >For each edge in <CODE CLASS="PARAMETER" >edges</CODE > check if it is duplicated (as returned by <A HREF="gts-edges.html#GTS-EDGE-IS-DUPLICATE" ><CODE CLASS="FUNCTION" >gts_edge_is_duplicate()</CODE ></A >). If it is replace it by its duplicate, destroy it and remove it from the list.</P ><P ></P ><P ></P ><TABLE CLASS="variablelist" BORDER="0" CELLSPACING="0" CELLPADDING="4" ><TBODY ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN7210"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >edges</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a list of <A HREF="gts-edges.html#GTSEDGE" ><SPAN CLASS="TYPE" >GtsEdge</SPAN ></A >.</P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN7217"><SPAN STYLE="white-space: nowrap" ><SPAN CLASS="emphasis" ><I CLASS="EMPHASIS" >Returns</I ></SPAN > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > the updated <CODE CLASS="PARAMETER" >edges</CODE > list.</P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN7223" ></A ><H3 ><A NAME="GTS-EDGES-FROM-VERTICES" ></A >gts_edges_from_vertices ()</H3 ><PRE CLASS="PROGRAMLISTING" ><GTKDOCLINK HREF="GSLIST" >GSList</GTKDOCLINK >* gts_edges_from_vertices (<GTKDOCLINK HREF="GSLIST" >GSList</GTKDOCLINK > *vertices, <A HREF="gts-surfaces.html#GTSSURFACE" >GtsSurface</A > *parent);</PRE ><P ></P ><P ></P ><P ></P ><TABLE CLASS="variablelist" BORDER="0" CELLSPACING="0" CELLPADDING="4" ><TBODY ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN7235"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >vertices</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a list of <A HREF="gts-vertices.html#GTSVERTEX" ><SPAN CLASS="TYPE" >GtsVertex</SPAN ></A >.</P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN7242"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >parent</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a <A HREF="gts-surfaces.html#GTSSURFACE" ><SPAN CLASS="TYPE" >GtsSurface</SPAN ></A >.</P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN7249"><SPAN STYLE="white-space: nowrap" ><SPAN CLASS="emphasis" ><I CLASS="EMPHASIS" >Returns</I ></SPAN > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a list of unique <A HREF="gts-edges.html#GTSEDGE" ><SPAN CLASS="TYPE" >GtsEdge</SPAN ></A > which have one of their vertices in <CODE CLASS="PARAMETER" >vertices</CODE > and are used by a face of <CODE CLASS="PARAMETER" >parent</CODE >. </P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN7258" ></A ><H3 ><A NAME="GTS-EDGE-SWAP" ></A >gts_edge_swap ()</H3 ><PRE CLASS="PROGRAMLISTING" ><GTKDOCLINK HREF="VOID" >void</GTKDOCLINK > gts_edge_swap (<A HREF="gts-edges.html#GTSEDGE" >GtsEdge</A > *e, <A HREF="gts-surfaces.html#GTSSURFACE" >GtsSurface</A > *s);</PRE ><P >Performs an "edge swap" on the two triangles sharing <CODE CLASS="PARAMETER" >e</CODE > and belonging to <CODE CLASS="PARAMETER" >s</CODE >.</P ><P ></P ><P ></P ><TABLE CLASS="variablelist" BORDER="0" CELLSPACING="0" CELLPADDING="4" ><TBODY ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN7272"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >e</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a <A HREF="gts-edges.html#GTSEDGE" ><SPAN CLASS="TYPE" >GtsEdge</SPAN ></A >.</P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN7279"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >s</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a <A HREF="gts-surfaces.html#GTSSURFACE" ><SPAN CLASS="TYPE" >GtsSurface</SPAN ></A >.</P ></TD ></TR ></TBODY ></TABLE ></DIV ></DIV ><TABLE CLASS="navigation" WIDTH="100%" SUMMARY="Navigation footer" CELLPADDING="2" CELLSPACING="2" ><TR VALIGN="middle" ><TD ALIGN="left" ><A ACCESSKEY="p" HREF="gts-segments.html" ><B ><<< Segments</B ></A ></TD ><TD ALIGN="right" ><A ACCESSKEY="n" HREF="gts-triangles.html" ><B >Triangles >>></B ></A ></TD ></TR ></TABLE ></BODY ></HTML >