00001 //------------------------------------------------------------------------------ 00002 // Lamp : Open source game middleware 00003 // Copyright (C) 2004 Junpei Ohtani ( Email : junpee@users.sourceforge.jp ) 00004 // 00005 // This library is free software; you can redistribute it and/or 00006 // modify it under the terms of the GNU Lesser General Public 00007 // License as published by the Free Software Foundation; either 00008 // version 2.1 of the License, or (at your option) any later version. 00009 // 00010 // This library is distributed in the hope that it will be useful, 00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 // Lesser General Public License for more details. 00014 // 00015 // You should have received a copy of the GNU Lesser General Public 00016 // License along with this library; if not, write to the Free Software 00017 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00018 //------------------------------------------------------------------------------ 00019 00020 /** @file 00021 * バウンディングスフィア計算フィルタヘッダ 00022 * @author Junpee 00023 */ 00024 00025 #ifndef CALCULATE_BOUNDING_SPHERE_FILTER_H_ 00026 #define CALCULATE_BOUNDING_SPHERE_FILTER_H_ 00027 00028 #include <Graphics/SceneFilter/SceneFilterInterface.h> 00029 00030 namespace Lamp{ 00031 00032 class Mesh; 00033 00034 //------------------------------------------------------------------------------ 00035 /** 00036 * バウンディングスフィア計算フィルタ 00037 * 00038 * 書式は"CalculateBoundingSphere"<br> 00039 * バウンディングスフィアを計算する。<br> 00040 * キャラクタスケールオプション<br> 00041 * characterScale (float) 00042 */ 00043 // 必要そうであればキャラクタオフセットに対応する 00044 class CalculateBoundingSphereFilter : public SceneFilterInterface{ 00045 friend class SceneFilter; 00046 protected: 00047 /** 00048 * コンストラクタ 00049 * @param scene フィルタをかけるシーン 00050 */ 00051 CalculateBoundingSphereFilter(Scene* scene); 00052 00053 /** 00054 * デストラクタ 00055 */ 00056 virtual ~CalculateBoundingSphereFilter(); 00057 00058 /** 00059 * フィルタ 00060 * @param command コマンド 00061 * @return 成功すればtrue 00062 */ 00063 virtual bool filter(const String& command); 00064 00065 /// シーンのフィルタ 00066 virtual bool filterScene(); 00067 00068 /// メッシュのフィルタ 00069 virtual bool filterMesh(); 00070 00071 /// メッシュのフィルタ 00072 virtual bool filterMesh(Mesh* mesh); 00073 00074 /// キャラクタスケール 00075 float characterScale_; 00076 }; 00077 00078 //------------------------------------------------------------------------------ 00079 } // End of namespace Lamp 00080 #endif // End of CALCULATE_BOUNDING_SPHERE_FILTER_H_ 00081 //------------------------------------------------------------------------------