Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 78653db2e4148c15abb94d33af2851c6 > files > 23

gts-devel-0.7.6-15.fc15.i686.rpm

<!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&nbsp;--&nbsp;edge object and related functions.</DIV
><DIV
CLASS="REFSYNOPSISDIV"
><A
NAME="AEN6575"
></A
><H2
>Synopsis</H2
><PRE
CLASS="SYNOPSIS"
>&#13;#include &lt;gts.h&gt;


#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
>&nbsp;:</SPAN
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>&#13;</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
>&nbsp;:</SPAN
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>&#13;</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
>&nbsp;:</SPAN
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>&#13;</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
>&nbsp;<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
>&nbsp;*<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.&#13;</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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</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
>-&gt;triangles list is
updated appropriately and the <CODE
CLASS="PARAMETER"
>e</CODE
>-&gt;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
>&nbsp;:</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
>&nbsp;:</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)-&gt;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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</SPAN
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>&#13;</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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</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
>&nbsp;:</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
>&lt;&lt;&lt;&nbsp;Segments</B
></A
></TD
><TD
ALIGN="right"
><A
ACCESSKEY="n"
HREF="gts-triangles.html"
><B
>Triangles&nbsp;&gt;&gt;&gt;</B
></A
></TD
></TR
></TABLE
></BODY
></HTML
>