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 PRIMITIVE_DRAW_REQUEST_BUILDER_H_ 00026 #define PRIMITIVE_DRAW_REQUEST_BUILDER_H_ 00027 00028 namespace Lamp{ 00029 00030 class PrimitiveDrawRequest; 00031 class CharacterModel; 00032 00033 //------------------------------------------------------------------------------ 00034 /** 00035 * プリミティブ描画リクエストビルダ 00036 */ 00037 class PrimitiveDrawRequestBuilder{ 00038 public: 00039 /** 00040 * ポイントの構築 00041 * @param request 描画リクエスト 00042 */ 00043 static void buildPoint(PrimitiveDrawRequest* request); 00044 00045 /** 00046 * 軸ポイントの構築 00047 * @param request 描画リクエスト 00048 */ 00049 static void buildAxisPoint(PrimitiveDrawRequest* request); 00050 00051 /** 00052 * 軸の構築 00053 * @param request 描画リクエスト 00054 */ 00055 static void buildAxis(PrimitiveDrawRequest* request); 00056 00057 /** 00058 * 矢印の構築 00059 * @param request 描画リクエスト 00060 */ 00061 static void buildArrow(PrimitiveDrawRequest* request); 00062 00063 /** 00064 * グリッドの構築 00065 * @param request 描画リクエスト 00066 * @param division 分割数 00067 * @param subDivision サブ分割数 00068 */ 00069 static void buildGrid(PrimitiveDrawRequest* request, 00070 int division, int subDivision); 00071 00072 /** 00073 * 平面の構築 00074 * @param request 描画リクエスト 00075 */ 00076 static void buildPlane(PrimitiveDrawRequest* request); 00077 00078 /** 00079 * 球の構築 00080 * @param request 描画リクエスト 00081 * @param radius 半径 00082 * @param horizontalDivision 水平分割数 00083 * @param verticalDivision 垂直分割数 00084 */ 00085 static void buildSphere(PrimitiveDrawRequest* request, 00086 float radius, int horizontalDivision, int verticalDivision); 00087 00088 /** 00089 * 箱の構築 00090 * @param request 描画リクエスト 00091 * @param width 幅 00092 * @param height 高さ 00093 * @param depth 奥行き 00094 */ 00095 static void buildBox(PrimitiveDrawRequest* request, 00096 float width, float height, float depth); 00097 00098 /** 00099 * 円柱の構築 00100 * @param request 描画リクエスト 00101 * @param radius 半径 00102 * @param height 高さ 00103 * @param division 分割数 00104 */ 00105 static void buildCylinder(PrimitiveDrawRequest* request, 00106 float radius, float height, int division); 00107 00108 /** 00109 * コーンの構築 00110 * @param request 描画リクエスト 00111 * @param radius 半径 00112 * @param height 高さ 00113 * @param division 分割数 00114 */ 00115 static void buildCone(PrimitiveDrawRequest* request, 00116 float radius, float height, int division); 00117 00118 /** 00119 * ボーンの構築 00120 * @param request 描画リクエスト 00121 * @param model キャラクタモデル 00122 */ 00123 static void buildBone(PrimitiveDrawRequest* request, CharacterModel* model); 00124 00125 private: 00126 //-------------------------------------------------------------------------- 00127 // コンストラクタの隠蔽 00128 PrimitiveDrawRequestBuilder(); 00129 00130 }; 00131 00132 //------------------------------------------------------------------------------ 00133 } // End of namespace Lamp 00134 #endif // End of PRIMITIVE_DRAW_REQUEST_BUILDER_H_ 00135 //------------------------------------------------------------------------------