## Public API Reference

- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- File List
- File Members

# imesh/haze.h

Go to the documentation of this file.

    00001 /*
    00002     Copyright (C) 2001 by W.C.A. Wijngaards
    00003
    00004     This library is free software; you can redistribute it and/or
    00005     modify it under the terms of the GNU Library General Public
    00006     License as published by the Free Software Foundation; either
    00007     version 2 of the License, or (at your option) any later version.
    00008
    00009     This library is distributed in the hope that it will be useful,
    00010     but WITHOUT ANY WARRANTY; without even the implied warranty of
    00011     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    00012     Library General Public License for more details.
    00013
    00014     You should have received a copy of the GNU Library General Public
    00015     License along with this library; if not, write to the Free
    00016     Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
    00017 */
    00018
    00019 #ifndef __CS_IMESH_HAZE_H__
    00020 #define __CS_IMESH_HAZE_H__
    00021
    00026 #include "csutil/scf.h"
    00027
    00031 struct iMaterialWrapper;
    00032
    00033 class csVector2;
    00034 class csVector3;
    00035
    00036 SCF_VERSION (iHazeHull, 0, 0, 1);
    00037
    00053 struct iHazeHull : public iBase
    00054 {
    00056   virtual int GetPolygonCount() const = 0;
    00058   virtual int GetVerticeCount() const = 0;
    00060   virtual int GetEdgeCount() const = 0;
    00061
    00063   virtual void GetVertex(csVector3& res, int vertex_idx) const = 0;
    00065   virtual void GetEdge(int edge_num, int& vertex_idx_1, int& vertex_idx_2)
    00066     const = 0;
    00067
    00069   virtual int GetPolVerticeCount(int polygon_num) const = 0;
    00071   virtual int GetPolVertex(int polygon_num, int vertex_num) const = 0;
    00077   virtual int GetPolEdge(int polygon_num, int vertex_num, int& start_idx,
    00078     int& end_idx) const = 0;
    00079 };
    00080
    00081 SCF_VERSION (iHazeHullBox, 0, 0, 1);
    00082
    00086 struct iHazeHullBox : public iBase
    00087 {
    00089   virtual void GetSettings(csVector3& min, csVector3& max) = 0;
    00090 };
    00091
    00092 SCF_VERSION (iHazeHullCone, 0, 0, 1);
    00093
    00097 struct iHazeHullCone : public iBase
    00098 {
    00100   virtual void GetSettings(int &nr, csVector3& a, csVector3& b, float &ra,
    00101         float &rb) = 0;
    00102 };
    00103
    00104 SCF_VERSION (iHazeHullCreation, 0, 0, 2);
    00105
    00110 struct iHazeHullCreation : public iBase
    00111 {
    00113   virtual csRef<iHazeHullBox> CreateBox(const csVector3& min,
    00114     const csVector3& max) const = 0;
    00116   virtual csRef<iHazeHullCone> CreateCone(int nr_sides, const csVector3& start,
    00117     const csVector3& end, float srad, float erad) const = 0;
    00118 };
    00119
    00120 SCF_VERSION (iHazeFactoryState, 0, 0, 1);
    00121
    00129 struct iHazeFactoryState : public iBase
    00130 {
    00132   virtual void SetMaterialWrapper (iMaterialWrapper* material) = 0;
    00134   virtual iMaterialWrapper* GetMaterialWrapper () const = 0;
    00136   virtual void SetMixMode (uint mode) = 0;
    00138   virtual uint GetMixMode () const = 0;
    00139
    00141   virtual void SetOrigin(const csVector3& pos) = 0;
    00143   virtual const csVector3& GetOrigin() const = 0;
    00144
    00146   virtual void SetDirectional(const csVector3& pos) = 0;
    00148   virtual const csVector3& GetDirectional() const = 0;
    00149
    00151   virtual int GetLayerCount() const = 0;
    00153   virtual void AddLayer(iHazeHull *hull, float scale) = 0;
    00155   virtual void SetLayerHull(int layer, iHazeHull* hull) = 0;
    00157   virtual iHazeHull* GetLayerHull(int layer) const = 0;
    00159   virtual void SetLayerScale(int layer, float scale) = 0;
    00161   virtual float GetLayerScale(int layer) const = 0;
    00162 };
    00163
    00164 SCF_VERSION (iHazeState, 0, 0, 1);
    00165
    00170 struct iHazeState : public iHazeFactoryState
    00171 {
    00172 };
    00173
    00176 #endif // __CS_IMESH_HAZE_H__
    00177