00001 #pragma once 00002 #include "maxheap.h" 00003 #include <WTypes.h> 00004 00005 // Moved from VEDGE.CPP -TH 00006 #define UNDEF 0xFFFFFFFF 00007 #define UNDEF_FACE 0x3FFFFFFF 00008 00009 class VEdge: public MaxHeapOperators { 00010 DWORD f[2]; 00011 public: 00012 void SetFace(int i, DWORD n) { f[i] =(f[i]&0xc0000000)|n;} 00013 void SetWhichSide(int i, int s) { f[i] =(f[i]&0x3FFFFFFF)|((s&3)<<30); } 00014 DWORD GetFace(int i){ return f[i]&0x3fffffff; } 00015 int GetWhichSide(int i) { return (f[i]>>30)&3; } 00016 }; 00017 00018 struct Edge: public MaxHeapOperators { 00019 Edge(unsigned short fl = 0, DWORD v0 = UNDEF, DWORD v1 = UNDEF, DWORD f0 = UNDEF, DWORD f1 = UNDEF) 00020 { flags = fl; v[0] = v0; v[1] = v1; f[0] = f0; f[1]= f1;} 00021 unsigned short flags; 00022 DWORD v[2]; /* indices of two vertices defining edge */ 00023 DWORD f[2]; /* indices of two neighboring faces */ 00024 }; 00025 00026 00027 00028