VedaLibDemo/Equ_XYZD_SinusWalls.h

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 \____/