HOOPS/3dGS I.M. Interface

     << Back      Full Index      Forward >>


topology.h

00001 /*
00002  * Copyright (c) 1998 by Tech Soft 3D, LLC.
00003  * The information contained herein is confidential and proprietary to
00004  * Tech Soft 3D, LLC., and considered a trade secret as defined under
00005  * civil and criminal statutes.  Tech Soft 3D shall pursue its civil
00006  * and criminal remedies in the event of unauthorized use or misappropriation
00007  * of its trade secrets.  Use of this information by anyone other than
00008  * authorized employees of Tech Soft 3D, LLC. is granted only under a
00009  * written non-disclosure agreement, expressly prescribing the scope and
00010  * manner of such use.
00011  *
00012  * $Id: topology_8h-source.html,v 1.29 2008-03-10 07:09:28 stage Exp $
00013  */
00014 
00015 struct HT_Region_Edge {
00016     HT_Region_Edge      *next, *prev;
00017 
00018     bool                solid;
00019     int                 owner;
00020     int                 region;
00021 
00022 #   define BASE                 0
00023 #   define NEXT                 1
00024     HT_Point            *pt[2];
00025 };
00026 
00027 
00028 
00029 /*
00030  * a "wing" is essentially a wide vertex, covering three cases:
00031  * 1. duplicate points together form a single wing
00032  *    in this case, left and right may have different values, but
00033  *    the points to which they refer must be equivalent
00034  * 2. all points connected on a horizontal form a single wing
00035  *    here, left points to the leftmost point on the horizontal,
00036  *    right points to the rightmost.
00037  * 3. of course, a lone vertex forms a wing
00038  *    in this case, left and right refer to the same point
00039  */
00040 struct HT_Wing {
00041     HT_Wing             *next;          /* auto link */
00042 
00043 #   define LEFT         0
00044 #   define RITE         1
00045     HT_Region_Edge      edges[2];
00046 
00047 #   define LEFT_IS_RISING       0x02
00048 #   define RIGHT_IS_RISING      0x01
00049 #   define VALLEY               0x03    /* both are rising */
00050 #   define PEAK                 0x00    /* neither is rising */
00051     int                 type;           /* classification of this wing */
00052 
00053     int                 owner;
00054     int                 region;
00055 
00056     bool                solid;
00057     float               gap[2];
00058 };
00059 
00060 
00061 
00062 
00063 struct HT_Wedge_Tree {
00064     HT_Wedge_Tree       *left, *right;
00065     HT_Vector           partition_ray;
00066     int                 partition_index;
00067 };
00068 
Main Index
HOOPS/3dGS I.M. Interface

     << Back      Full Index      Forward >>