#pragma once

namespace Mix{ namespace Scene{ namespace Common{

	//オクトリー : ビュー( カメラ )の最大数
	static const UInt32 OCTREE_VIEW_MAX	= 16;

	//オクトリー : 定数
	enum OCTREE_CONSTANT
	{
		OCTREE_COLOR_MASK	= 0x55555555,	// カラーとして描画しているマスク
		OCTREE_SHADOW_MASK	= 0xAAAAAAAA,	// シャドウとして投影しているマスク

		OCTREE_VISIBLE_MASK = OCTREE_COLOR_MASK, //視界に入っているマスク
	};

	//オクトリー : ビュータイプ列挙定数
	enum OCTREE_VIEW_TYPE
	{
		OCTREE_VIEW_COLOR	= 0,	//カラー
		OCTREE_VIEW_SHADOW	= 1,	//シャドウ

		OCTREE_VIEW_TYPE_MAX = 2,	//最大数
	};

	//オクトリー : ビューデータ構造体
	struct OCTREE_VIEW_DATA
	{
		UInt32 id;

		UInt32 colBit;
		UInt32 sdwBit;
		UInt32 mask;
		UInt32 invMask;

		bool operator == ( const OCTREE_VIEW_DATA& data ) const
		{
			if( ( colBit != data.colBit ) ||
				( sdwBit != data.sdwBit ) ||
				( mask != data.mask ) ||
				( invMask != data.invMask ) )
			{
				return false;
			}

			return true;
		}
	};

}}}
