Main Page | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Namespace Members | Compound Members | File Members

# MeshGeometry.h

Go to the documentation of this file.

    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 MESH_GEOMETRY_H_
    00026 #define MESH_GEOMETRY_H_
    00027
    00028 namespace Lamp{
    00029
    00030 class IntersectionResult;
    00031
    00032 //------------------------------------------------------------------------------
    00033 /**
    00034  * メッシュジオメトリ
    00035  */
    00036 class MeshGeometry{
    00037 public:
    00038     //--------------------------------------------------------------------------
    00039     // 生成、破棄
    00040     //--------------------------------------------------------------------------
    00041     /**
    00042      * コンストラクタ
    00043      */
    00044     MeshGeometry();
    00045
    00046     /**
    00047      * コピーコンストラクタ
    00048      * @param copy コピー元
    00049      */
    00050     explicit MeshGeometry(const MeshGeometry& copy);
    00051
    00052     /**
    00053      * 代入コピー
    00054      * @param copy コピー元
    00055      * @return コピーされたメッシュジオメトリ
    00056      */
    00057     virtual const MeshGeometry& operator =(const MeshGeometry& copy);
    00058
    00059     /**
    00060      * デストラクタ
    00061      */
    00062     virtual ~MeshGeometry();
    00063
    00064     //--------------------------------------------------------------------------
    00065     // 交差
    00066     //--------------------------------------------------------------------------
    00067     /**
    00068      * 球交差
    00069      * @param sphere 交差判定する球
    00070      * @return 交差していればtrue
    00071      */
    00072     virtual bool intersect(const Sphere& sphere) const{
    00073         Assert(false);
    00074         return false;
    00075     }
    00076
    00077     /**
    00078      * 球交差
    00079      * @param sphere 交差判定する球
    00080      * @param result 交差結果
    00081      */
    00082     virtual void intersect(
    00083         IntersectionResult* result, const Sphere& sphere) const{
    00084         Assert(false);
    00085     }
    00086
    00087     /**
    00088      * 球バウンディング交差
    00089      * @param sphere 交差判定する球
    00090      * @return バウンディングと交差していればtrue
    00091      */
    00092     virtual bool intersectBounding(const Sphere& sphere) const{
    00093         Assert(false);
    00094         return false;
    00095     }
    00096
    00097     /**
    00098      * 球メッシュ交差
    00099      * @param sphere 交差判定する球
    00100      * @return メッシュと交差していればtrue
    00101      */
    00102     virtual bool intersectMesh(const Sphere& sphere) const{
    00103         Assert(false);
    00104         return false;
    00105     }
    00106
    00107     /**
    00108      * 球メッシュ交差
    00109      * @param sphere 交差判定する球
    00110      * @param result 交差結果
    00111      */
    00112     virtual void intersectMesh(
    00113         IntersectionResult* result, const Sphere& sphere) const{
    00114         Assert(false);
    00115     }
    00116
    00117 };
    00118
    00119 //------------------------------------------------------------------------------
    00120 } // End of namespace Lamp
    00121 #endif // End of MESH_GEOMETRY_H_
    00122 //------------------------------------------------------------------------------