47 lines
1013 B
C++
Executable File
47 lines
1013 B
C++
Executable File
/*********************************************************************
|
|
*<
|
|
FILE: sceneTraversal.h
|
|
|
|
DESCRIPTION: Interface for plugins controlling display traversal
|
|
|
|
CREATED BY: John Hutchinson
|
|
|
|
HISTORY: November 5 2003
|
|
|
|
*> Copyright (c) 2000, All Rights Reserved.
|
|
**********************************************************************/
|
|
|
|
#ifndef __SCENETRAVERSE__
|
|
#define __SCENETRAVERSE__
|
|
|
|
#include "maxtypes.h"
|
|
|
|
#define SCENETRAVERSAL_INTERFACE Interface_ID(0x35380d8c, 0x48e54b8c)
|
|
|
|
class NodeIterator;
|
|
class ViewExp;
|
|
|
|
// An interface for controlling the display traversal of the scene
|
|
class ISceneTraversal : public BaseInterface {
|
|
public:
|
|
|
|
typedef enum {
|
|
kDisplay = 0,
|
|
kHitTest = 1,
|
|
} IteratorContext;
|
|
|
|
virtual NodeIterator *GetIterator(ViewExp* vpt, IteratorContext context) = 0;
|
|
};
|
|
|
|
class NodeIterator
|
|
{
|
|
public:
|
|
virtual void DeleteThis() {delete this;}
|
|
virtual void Reset() = 0;
|
|
virtual INode *next() = 0;
|
|
};
|
|
|
|
|
|
|
|
#endif //__SCENETRAVERSE__
|