Biomechanical Joint Model
 Author: Anderson Maciel

EndPoint.H

Go to the documentation of this file.
00001 /************************************************************************\
00002 
00003   Copyright 1997 The University of North Carolina at Chapel Hill.
00004   All Rights Reserved.
00005 
00006   Permission to use, copy, modify and distribute this software
00007   and its documentation for educational, research and non-profit
00008   purposes, without fee, and without a written agreement is
00009   hereby granted, provided that the above copyright notice and
00010   the following three paragraphs appear in all copies.
00011 
00012   IN NO EVENT SHALL THE UNIVERSITY OF NORTH CAROLINA AT CHAPEL
00013   HILL BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL,
00014   INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS,
00015   ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION,
00016   EVEN IF THE UNIVERSITY OF NORTH CAROLINA HAVE BEEN ADVISED OF
00017   THE POSSIBILITY OF SUCH DAMAGES.
00018 
00019 
00020   Permission to use, copy, modify and distribute this software
00021   and its documentation for educational, research and non-profit
00022   purposes, without fee, and without a written agreement is
00023   hereby granted, provided that the above copyright notice and
00024   the following three paragraphs appear in all copies.
00025 
00026   THE UNIVERSITY OF NORTH CAROLINA SPECIFICALLY DISCLAIM ANY
00027   WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
00028   WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00029   PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS"
00030   BASIS, AND THE UNIVERSITY OF NORTH CAROLINA HAS NO OBLIGATION
00031   TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
00032   MODIFICATIONS.
00033 
00034 
00035    --------------------------------- 
00036   |Please send all BUG REPORTS to:  |
00037   |                                 |
00038   |   geom@cs.unc.edu               |
00039   |                                 |
00040    ---------------------------------
00041   
00042      
00043   The authors may be contacted via:
00044 
00045   US Mail:  A. Pattekar/J. Cohen/T. Hudson/S. Gottschalk/M. Lin/D. Manocha
00046             Department of Computer Science
00047             Sitterson Hall, CB #3175
00048             University of N. Carolina
00049             Chapel Hill, NC 27599-3175
00050             
00051   Phone:    (919)962-1749
00052             
00053   EMail:    geom@cs.unc.edu
00054 
00055 \************************************************************************/
00056 
00057 
00058 /************************************************************************\
00059 Filename: EndPoint.H
00060 --
00061 Description: This file defines the class EndPoint, which stores
00062              information about either the (min_x, min_y, min_z)
00063              or the (max_x, max_y, max_z) end-point of an
00064              AABB.
00065 \************************************************************************/
00066 
00067 #ifndef ENDPOINT_H
00068 #define ENDPOINT_H
00069 
00070 class AABB;  //defined in file AABB.H
00071 
00072 const int MIN=1;
00073 const int MAX=2;
00074 
00075 /************************************************************************\
00076 Class: EndPoint
00077 --
00078 Description: Each instance of EndPoint appears simultaneously in
00079              three sorted linked lists, one for each dimension,
00080              as required by the sweep and prune algorithm. A
00081              "min" and the correspoding "max" end-point give us
00082              three intervals, one for each axis, which are
00083              actually the projections of the AABB on each of the
00084              three co-ordinate axii.
00085 
00086 \************************************************************************/
00087 
00088 
00089 
00090 class EndPoint
00091 {
00092 public:
00093   char        minmax;     //whether the instance represents a
00094                           //"min" or a "max" end-point.
00095   
00096   double      val[3];     //the coordinates of the EndPoint.
00097   EndPoint    *prev[3];   //for maintaining the three linked
00098   EndPoint    *next[3];   //lists.
00099 
00100   AABB        *aabb;      //back pointer to the parent AABB.
00101 
00102 };
00103 
00104 #endif /* ENDPOINT_H */

Generated on Thu Dec 1 10:13:37 2005 for COME - Biomechanical Joint Model by  doxygen 1.4.5