00001 /********************************************************************** 00002 *< 00003 FILE: osnapmk.h 00004 00005 DESCRIPTION: A Class for an osnapmarker 00006 00007 CREATED BY: John Hutchinson 00008 00009 HISTORY: Feb 12, 1996 00010 *> Copyright (c) 1994, All Rights Reserved. 00011 **********************************************************************/ 00012 #pragma once 00013 #include "coreexp.h" 00014 #include "maxheap.h" 00015 #include "ipoint3.h" 00016 #include "BuildWarnings.h" 00017 #include <WTypes.h> 00018 00019 // forward declarations 00020 class GraphicsWindow; 00021 00031 class OsnapMarker: public MaxHeapOperators 00032 { 00033 private: 00034 int m_numpoints; 00035 IPoint3* m_ppt; 00036 IPoint3* m_pcache; 00037 IPoint3 m_cache_trans; 00038 int m_cache_size; 00039 int* m_edgevis; 00040 00041 bool IsCacheValidEx(IPoint3 trans, int size); 00042 void UpdateCache(IPoint3 trans, int size); 00043 00044 public: 00047 CoreExport OsnapMarker(); 00050 CoreExport ~OsnapMarker(); 00069 CoreExport OsnapMarker(int n, IPoint3 *ppt, int *pes); 00075 CoreExport OsnapMarker(const OsnapMarker& om); 00080 CoreExport OsnapMarker& operator=(const OsnapMarker& om); 00086 void display(IPoint3 xyz, int markersize, GraphicsWindow *gw); 00087 }; 00088