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

		TreeTypes.h

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

		Author:	Ray Dream
		Date:	09/30/99

		Revision History

		when		who			what & why
		==========	==========	======================================================
		09/30/99	Charles		Created
*****************************************************************************************/

#ifndef __TreeTypes__
#define __TreeTypes__

#if CP_PRAGMA_ONCE
#pragma once
#endif

//ETreeBoundingBoxModes is used to indicate which kind of bounding box is to be given by GetBoundingBox
// (method of I3DShGroup, I3DShInstance and I3DShTreeElement)
enum ETreeDeformBBoxModes
{
	kApplyNoDeformer					= 0,
		//Gives the original box (without applying any deformer)
	kApplyDeformersLocaly				= 1,	
		//At each tree (group) level accumulates the bboxes of the children (recursively computed with kApplyDeformersLocaly)
		//and then applies the tree deformers on the resulting box
	kApplyAllDeformersAtInstanceLevel	= 2,
		//Valid only for instances, deforms the original box of the instance by all the deformers
		//of the tree the instance is on.
		
	kUnusedApplyDeformerConstant		= 0xFFFFFFFF	//just to ensure "castable" as uint32
};


/// \addtogroup ShellInterface
/// \{
///Describes the prefered way to rescale a tree (in the 3dview)
enum EScalingLockMode
{
	kLockCenterAndHotPoint	= 0,
	kLockHotPointOnly		= 1,
	kLockCenterOnly			= 2,
};
/// \}



#endif