/****************************************************************************************

		TreeChanges.h

		Copyright: (c) 2001 Eovia Corp. All rights reserved.

		Author:	Greg
		Date:	11/5/98

		Revision History

		when		who			what & why
		==========	==========	======================================================
		11/29/99	Greg		Added kChange_OldJumpTree change
		3/3/99		Greg		New tree changes, added scene property changes
		12/9/98		Greg		Added all new changes
		11/23/98	pbk			Separating 3DDB from MCFrame
		
*****************************************************************************************/

#ifndef __TREECHANGES__  
#define __TREECHANGES__

// Used in TreePropertyChangeChannel

#define kChange_TreeFirst				0x00000000
#define kChange_TreeLast				0x0000FFFF
#define kChange_TreeAdded				0x00000000
#define kChange_TreeRemoved				0x00000002
#define kChange_TreeTransform			0x00000004
#define kChange_TreeName				0x00000005
#define kChange_TreeModifier			0x00000006
#define kChange_TreeAnimationMethod		0x00000007
#define kChange_TreeConstraint			0x00000008
#define kChange_TreeReflectionComp		0x00000009
#define kChange_TreeRefractionComp		0x0000000A
#define kChange_TreeWireFrame			0x0000000B
#define kChange_TreeVisibility			0x0000000C
#define kChange_TreeShadowCasting		0x0000000D
#define kChange_TreeReceiveShadow		0x0000000E
#define kChange_TreeMasterObject		0x0000000F
#define kChange_TreeMasterShader		0x00000010
#define kChange_TreeDataComponent		0x00000011
#define kChange_TreeWireFrameNoViewInval			0x00000012  //Hack for drag and drop feedback
#define kChange_TreeSelection			0x00000013
#define kChange_TreeAttributesSetControler		0x00000014

#define kChange_MasterObjectFirst		0x00010000
#define kChange_MasterObjectLast		0x0001FFFF
#define kChange_MasterObjectAdded		0x00010000
#define kChange_MasterObjectRemoved		0x00010001
#define kChange_MasterObjectModified	0x00010002
#define kChange_MasterObjectName		0x00010003
#define kChange_MasterObjectEdit		0x00010004
#define kChange_MasterObjectEnterModeler	0x00010005
#define kChange_MasterObjectLeaveModeler	0x00010006
#define kChange_MasterObjectUpdateModeler	0x00010007		//Hack to force modeler update when object changed outside of modeler

#define kChange_MasterShaderFirst		0x00020000
#define kChange_MasterShaderLast		0x0002FFFF
#define kChange_MasterShaderAdded		0x00020000
#define kChange_MasterShaderRemoved		0x00020001
#define kChange_MasterShaderModified	0x00020002
#define kChange_MasterShaderName		0x00020003
#define kChange_MasterShaderEdit		0x00020004
#define kChange_TextureModified			0x00020005

#define kChange_MasterSoundFirst		0x000A0000
#define kChange_MasterSoundLast			0x000AFFFF
#define kChange_MasterSoundAdded		0x000A0000
#define kChange_MasterSoundRemoved		0x000A0001
#define kChange_MasterSoundModified		0x000A0002
#define kChange_MasterSoundName			0x000A0003
#define kChange_MasterSoundChannels 	0x000A0004

#define kChange_MasterClipFirst			0x000B0000
#define kChange_MasterClipLast			0x000BFFFF
#define kChange_MasterClipAdded			0x000B0000
#define kChange_MasterClipRemoved		0x000B0001
#define kChange_MasterClipModified		0x000B0002
#define kChange_MasterClipName			0x000B0003

#define kChange_CameraFirst				0x00030000
#define kChange_CameraLast				0x0003FFFF
#define kChange_CameraAdded				0x00030000
#define kChange_CameraRemoved			0x00030001
#define kChange_EndCameraMoved			0x00030002	// called once the camera position has been changed
#define kChange_CameraHasMoved			0x00030003	// called each time the camera position is changed

#define kChange_LightFirst				0x00040000
#define kChange_LightLast				0x0004FFFF
#define kChange_LightAdded				0x00040000
#define kChange_LightRemoved			0x00040001
#define kChange_LightModified			0x00040002

#define kChange_GroupFirst				0x00050000
#define kChange_GroupLast				0x0005FFFF
#define kChange_GroupOpened				0x00050000
#define kChange_GroupClosed				0x00050001

#define kChange_MiscTreeFirst			0x00060000
#define kChange_MiscTreeLast			0x0006FFFF
#define kChange_MiscTreePreRemove		0x00060000
#define kChange_MiscTreePreMove			0x00060001
#define kChange_MiscTreePostMove		0x00060002

// Used in ScenePropertyChangeChannel

#define kChange_SceneFirst				0x00070000
#define kChange_SceneLast				0x0007FFFF
#define kChange_SceneAmbient			0x00070000
#define kChange_SceneAtmosphere			0x00070001
#define kChange_SceneEnvironment		0x00070002
#define kChange_SceneBackdrop			0x00070003
#define kChange_ScenePostRenderers		0x00070004
#define kChange_SceneDataComponent		0x00070005
#define kChange_SceneRenderingSize		0x00070006
#define kChange_SceneWorkingBox			0x00070007	/* Working box have changed */
#define kChange_SceneCamerasSpeeds		0x00070008	/* Speed movement for camera has changed */

#define kChange_FlattenedTextureChanged	0x00080000

#define kChange_TreeHierachyAll			0x00090000

//Used in JumpInOutChannel

#define kChange_JumpIn					0x00000000
#define kChange_JumpOut					0x00000001
#define kChange_OldJumpTree				0x00000002  // sent after a jump out to indicate 
													// what was the old jump in object 
													// (so we can invalidate it)

#endif