00001 /********************************************************************** 00002 *< 00003 FILE: IGuest.h 00004 00005 DESCRIPTION: Declares Host/Guest protocol 00006 00007 CREATED BY: John Hutchinson 00008 00009 HISTORY: Created April 24, 1999 00010 00011 *> Copyright (c) 1994, All Rights Reserved. 00012 **********************************************************************/ 00013 #pragma once 00014 #include "maxheap.h" 00015 00016 // forward declarations 00017 class IGeomImp; 00018 class IHost; 00019 class Matrix3; 00020 class INode; 00021 class HitRecord; 00022 class Control; 00023 00024 class IGuest : public MaxHeapOperators 00025 { 00026 public: 00027 virtual void rsvp(IHost* host, IGeomImp* return_envelope, Matrix3& tm) = 0; 00028 }; 00029 00030 00031 class IHost : public MaxHeapOperators 00032 { 00033 public: 00034 virtual void accomodate(IGeomImp* guestrep, Matrix3& tm, HitRecord* rec = NULL) = 0; 00035 virtual bool locate(INode* host, Control* c, Matrix3& oldP, Matrix3& newP) = 0; 00036 };