Sophie

Sophie

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

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
>Geometrical Object Hierarchy</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="PREVIOUS"
TITLE="Miscellaneous macros and functions"
HREF="gts-miscellaneous-macros-and-functions.html"><LINK
REL="NEXT"
TITLE="Object class"
HREF="gts-object-class.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="CHAPTER"
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-miscellaneous-macros-and-functions.html"
><IMG
SRC="left.png"
WIDTH="24"
HEIGHT="24"
BORDER="0"
ALT="Prev"></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-object-class.html"
><IMG
SRC="right.png"
WIDTH="24"
HEIGHT="24"
BORDER="0"
ALT="Next"></A
></TD
></TR
></TABLE
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="AEN2915"
></A
>Geometrical Object Hierarchy</H1
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
><A
HREF="gts-object-class.html"
>Object class</A
>&nbsp;--&nbsp;parent class for all GTS objects.</DT
><DT
><A
HREF="gts-container-classes.html"
>Container classes</A
>&nbsp;--&nbsp;</DT
><DT
><A
HREF="gts-containee-classes.html"
>Containee classes</A
>&nbsp;--&nbsp;</DT
><DT
><A
HREF="gts-points.html"
>Points</A
>&nbsp;--&nbsp;point object and related functions.</DT
><DT
><A
HREF="gts-vertices.html"
>Vertices</A
>&nbsp;--&nbsp;vertex object and related functions.</DT
><DT
><A
HREF="gts-segments.html"
>Segments</A
>&nbsp;--&nbsp;segment object and related functions.</DT
><DT
><A
HREF="gts-edges.html"
>Edges</A
>&nbsp;--&nbsp;edge object and related functions.</DT
><DT
><A
HREF="gts-triangles.html"
>Triangles</A
>&nbsp;--&nbsp;triangle object and related functions.</DT
><DT
><A
HREF="gts-faces.html"
>Faces</A
>&nbsp;--&nbsp;face object and related functions.</DT
><DT
><A
HREF="gts-surfaces.html"
>Surfaces</A
>&nbsp;--&nbsp;surface object and related functions.</DT
></DL
></DIV
><P
>    GTS uses a simple object system implemented in C which allows all
    the basic paradigms of object-oriented programming: inheritance of
    class members and virtual functions overloading in particular.
    </P
><P
>    The class hierarchy is implemented via a hierarchy of nested C
    structs and type casting. In order to avoid "wild" type casts
    between objects belonging to incompatible classes, type casting is
    done through macros which check if the conversion is valid. This
    type checking is however relatively expensive and can be disabled
    on production code by omitting the GTS_CHECK_CASTS define at
    compile time.
    </P
><P
>    The basic geometrical objects of GTS do not have any support for
    attributes such as color, texture coordinates, material properties
    etc... which may be of interest when using GTS for graphical
    applications. This choice was made on purpose in order to keep GTS
    as general as possible. Using object inheritance it should however
    be easy to extend the base classes to fit your personal needs.
    </P
><P
>    When destroying geometrical objects you must keep in mind their
    geometrical relationships. Destroying a vertex also destroys all
    the edges using this particular vertex, destroying an edge
    destroys the triangles. Vertices, edges or faces not used by any
    segment, triangle or surface respectively are considered to be
    "floating" objects. When initially created all vertices, edges or
    faces are floating. Destroying a segment, triangle or surface will
    cause the destruction of any new floating vertex, edge or face.
    </P
></DIV
><TABLE
CLASS="navigation"
WIDTH="100%"
SUMMARY="Navigation footer"
CELLPADDING="2"
CELLSPACING="2"
><TR
VALIGN="middle"
><TD
ALIGN="left"
><A
ACCESSKEY="p"
HREF="gts-miscellaneous-macros-and-functions.html"
><B
>&lt;&lt;&lt;&nbsp;Miscellaneous macros and functions</B
></A
></TD
><TD
ALIGN="right"
><A
ACCESSKEY="n"
HREF="gts-object-class.html"
><B
>Object class&nbsp;&gt;&gt;&gt;</B
></A
></TD
></TR
></TABLE
></BODY
></HTML
>