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