00001 /********************************************************************** 00002 *< 00003 FILE: sceneapi.h 00004 00005 DESCRIPTION: Scene interface 00006 00007 CREATED BY: Rolf Berteig 00008 00009 HISTORY: Created 13 January 1995 00010 00011 *> Copyright (c) 1994, All Rights Reserved. 00012 **********************************************************************/ 00013 00014 00015 #pragma once 00016 #include "maxheap.h" 00017 #include "maxtypes.h" 00018 00019 class BaseObject; 00020 class ITreeEnumProc; 00021 00030 class IScene: public MaxHeapOperators { 00031 public: 00038 virtual int EnumTree( ITreeEnumProc* proc )=0; 00042 virtual void FlagFGSelected( TimeValue t )=0; 00046 virtual void FlagFGAnimated( TimeValue t )=0; 00051 virtual void FlagFGDependent( TimeValue t, BaseObject *obj )=0; 00052 }; 00053 00054 00055 // The purpose of this callback is to call FlagForeground() for 00056 // any nodes in the scene that are supposed to be in the foreground. 00057 class ChangeForegroundCallback: public MaxHeapOperators { 00058 public: 00059 virtual ~ChangeForegroundCallback() {;} 00060 virtual BOOL IsValid()=0; 00061 virtual void Invalidate()=0; 00062 virtual void Validate()=0; 00063 virtual void callback(TimeValue t,IScene *scene)=0; 00064 }; 00065