00001 #ifndef COM_M4NKIND_Equ_XYZD_SinusWalls_H 00002 #define COM_M4NKIND_Equ_XYZD_SinusWalls_H 00003 00004 #include "Equ_XYZD_Virtual.h" 00005 #include "PackFloat.h" 00006 #include "PackULong_Flags.h" 00007 #include "PackFloatByte_Limits.h" 00008 #include "PackDynamicFloat.h" 00009 /*! 00010 \class Equ_XYZD_SinusWalls 00011 \ingroup BaseObjectInherited_VedaLibDemo 00012 \brief Equation For metaball class Object3DMarchCube 00013 */ 00014 class Equ_XYZD_SinusWalls : public Equ_XYZD_Virtual 00015 { 00016 /*================================================================== 00017 PUBLIC 00018 ==================================================================*/ 00019 public: 00020 /*! 00021 \brief Constructor. There should only be members initialisation there. 00022 */ 00023 Equ_XYZD_SinusWalls(void); 00024 00025 /*! 00026 \brief Class Inheritance Descriptors. Also forces a destructor. See BASEOBJECT_DECLARE_... in .cpp 00027 */ 00028 BASEOBJECT_DEFINE_CLASS(Equ_XYZD_SinusWalls); 00029 /*! 00030 \brief Set the framedate, and compute all terms with a constant date. 00031 pass a int which must be equal to 0 at start. 00032 \param _date in seconds 00033 \param _iTermIndex an index of the equation term to process. 00034 \param _pbound a 6 float table, xmin,xman,ymin,ymax,zmin,mzmax of the cube where values are !=1.0 00035 \return false if index is out of bounds. 00036 */ 00037 virtual bool SetFrameDate( float _date, unsigned int _iTermIndex,float _pbound[6] ); 00038 00039 /*! 00040 \brief set X and Y constant. If it return false, all values are 1.0f 00041 and ComputeByX() is false. 00042 \param 00043 */ 00044 virtual bool SetYZConstant( float _y,float _z); 00045 /*! 00046 \brief 00047 \param 00048 */ 00049 virtual float ComputeByX( float _x); 00050 00051 /*================================================================== 00052 PROTECTED 00053 ==================================================================*/ 00054 protected: 00055 typedef enum 00056 { 00057 swe_Floor=1, 00058 swe_Ceiling=2, 00059 swe_West=4, 00060 swe_East=8, 00061 swe_North=16, 00062 swe_South=32 00063 } SinusWallBits ; 00064 //! the flags 00065 PackULong_Flags mSer_WallFlags; 00066 //! parameter for distortion 00067 PackDynamicFloat mSer_SinAmp; 00068 //! parameter for distortion 00069 PackDynamicFloat mSer_FloorAlt; 00070 //! parameter for distortion 00071 PackDynamicFloat mSer_CeilingAlt; 00072 //! parameter for distortion 00073 PackFloatByte_Limits mSer_Thickness; 00074 //! date term. 00075 float m_y; 00076 float m_yc; 00077 float m_zc; 00078 // float 00079 //! YZ term. 00080 float m_zz; 00081 00082 }; 00083 #endif
/\/\ 4 N k ! N D _______ _ __ ___ _____ ___ _ _ ____ ___________ __//___ /________ |/ / ___________\_______/ \ / _ _ \/ _ / _ / _/_/____/ _ __ / / / / / / / \ \/ / / \ \ / \\___/___/___/ ¯ _____/_____/ ______\___/_____/\________\\ \________/_ ___ __ l____\ /elD! http://www.m4nkind.com \____/