arcdlg.h

Go to the documentation of this file.
00001 /**********************************************************************
00002  *<
00003     FILE: arcdlg.h
00004 
00005     DESCRIPTION:
00006 
00007     CREATED BY: Dan Silva
00008 
00009     HISTORY:
00010 
00011  *> Copyright (c) 1994, All Rights Reserved.
00012  **********************************************************************/
00013 
00014 #pragma once
00015 #include "maxheap.h"
00016 #include "quat.h"
00017 
00025 class ArcballDialog: public MaxHeapOperators {
00026     public:
00028     virtual ~ArcballDialog() {}
00030     virtual void DeleteThis()=0;  
00031     };
00032 
00043 class ArcballCallback: public MaxHeapOperators {
00044     public:
00046     virtual ~ArcballCallback() {;}
00049     virtual void StartDrag()=0;   // called when drag begins (may want to save state at this point)
00051     virtual void EndDrag()=0;   // called when drag ends
00059     virtual void Drag(Quat q, BOOL buttonUp)=0;  // called during drag, with q=relative rotation from start
00062     virtual void CancelDrag()=0;  // called when right button clicked during drag
00066     virtual void BeingDestroyed()=0;  // called if the window was closed
00067     };
00068 
00083 CoreExport ArcballDialog* CreateArcballDialog(ArcballCallback* cb, HWND hwndOwner, MCHAR* title = NULL);
00084 
00085