NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52">Name Vertices -- vertex object and related functions.
Synopsis
#include <gts.h>
#define GTS_VERTEX_CLASS (klass)
#define GTS_VERTEX (obj)
#define GTS_IS_VERTEX (obj)
struct GtsVertexClass ;
struct GtsVertex ;
GtsVertexClass * gts_vertex_class (void);
GtsVertex * gts_vertex_new (GtsVertexClass *klass,
gdouble x,
gdouble y,
gdouble z);
gboolean gts_vertex_is_unattached (GtsVertex *v);
gboolean gts_vertex_is_boundary (GtsVertex *v,
GtsSurface *surface);
guint gts_vertex_is_contact (GtsVertex *v,
gboolean sever);
GtsSegment * gts_vertices_are_connected (GtsVertex *v1,
GtsVertex *v2);
void gts_vertex_replace (GtsVertex *v,
GtsVertex *with);
GSList * gts_vertex_neighbors (GtsVertex *v,
GSList *list,
GtsSurface *surface);
GSList * gts_vertex_triangles (GtsVertex *v,
GSList *list);
GSList * gts_vertex_faces (GtsVertex *v,
GtsSurface *surface,
GSList *list);
GSList * gts_vertex_fan_oriented (GtsVertex *v,
GtsSurface *surface);
gboolean gts_vertex_encroaches_edge (GtsVertex *v,
GtsEdge *e);
GSList * gts_vertices_from_segments (GSList *segments);
GList * gts_vertices_merge (GList *vertices,
gdouble epsilon);
Description Vertices are points used as endpoints of GtsSegment . They are derived from GtsPoint .
Details GTS_VERTEX_CLASS()#define GTS_VERTEX_CLASS(klass)
Casts klass to GtsVertexClass .
GTS_IS_VERTEX()#define GTS_IS_VERTEX(obj)
Evaluates to TRUE if obj is a descendant of GtsVertex , FALSE otherwise.
struct GtsVertexClassThe vertex class. No virtual functions are associated.
struct GtsVertexstruct GtsVertex {
GtsPoint p;
GSList * segments;
};
The vertex object.
gts_vertex_is_unattached ()gboolean gts_vertex_is_unattached (GtsVertex *v);
gts_vertex_is_boundary ()
gts_vertex_is_contact ()guint gts_vertex_is_contact (GtsVertex *v,
gboolean sever);
gts_vertices_are_connected ()
gts_vertex_replace ()Replaces vertex v with vertex with . v and with must be
different. All the GtsSegment which have v has one of their
vertices are updated. The segments list of vertex v is freed and
v ->segments is set to NULL .
gts_vertex_neighbors ()Adds to list all the GtsVertex connected to v by a GtsSegment and not
already in list . If surface is not NULL only the vertices connected to
v by an edge belonging to surface are considered.
gts_vertex_triangles ()GSList * gts_vertex_triangles (GtsVertex *v,
GSList *list);
Adds all the GtsTriangle which share v as a vertex and do not
already belong to list .
gts_vertex_faces ()Adds all the GtsFace belonging to surface (if not NULL ) which share
v as a vertex and do not already belong to list .
gts_vertex_fan_oriented ()
gts_vertex_encroaches_edge ()
gts_vertices_from_segments ()GSList * gts_vertices_from_segments (GSList *segments);
gts_vertices_merge ()GList * gts_vertices_merge (GList *vertices,
gdouble epsilon);
For each vertex v in vertices look if there are any vertex of
vertices contained in a box centered on v of size 2*epsilon . If
there are, replace them with v (using gts_vertex_replace ()),
destroy them and remove them from list. This is done efficiently
using Kd-Trees.