VedaLibDemo/Equ_XYZD_Tore.h

00001 #ifndef COM_M4NKIND_Equ_XYZD_Tore_H
00002 #define COM_M4NKIND_Equ_XYZD_Tore_H
00003 
00004 #include "Equ_XYZD_Virtual.h"
00005 #include "PackFloat.h"
00006 #include "PackFloatByte_Limits.h"
00007 #include "PackDynamicFloat.h"
00008 /*!
00009     \class  Equ_XYZD_Tore
00010     \ingroup    BaseObjectInherited_VedaLibDemo
00011     \brief  Equation For metaball class Object3DMarchCube
00012 */
00013 class Equ_XYZD_Tore : public Equ_XYZD_Virtual
00014 {
00015 /*==================================================================
00016                                 PUBLIC
00017 ==================================================================*/
00018 public:
00019     /*!
00020         \brief  Constructor. There should only be members initialisation there.
00021     */
00022     Equ_XYZD_Tore(void);
00023 
00024     /*!
00025         \brief  Class Inheritance Descriptors. Also forces a destructor. See BASEOBJECT_DECLARE_... in .cpp
00026     */
00027     BASEOBJECT_DEFINE_CLASS(Equ_XYZD_Tore);
00028     /*!
00029         \brief   Set the framedate, and compute all terms with a constant date.
00030             pass a int which must be equal to 0 at start.
00031         \param  _date           in seconds
00032         \param  _iTermIndex     an index of the equation term to process. 
00033         \param  _pbound         a 6 float table, xmin,xman,ymin,ymax,zmin,mzmax of the cube where values are !=1.0
00034         \return false if index is out of bounds.
00035     */
00036     virtual bool SetFrameDate( float _date, unsigned int _iTermIndex,float _pbound[6] );
00037 
00038     /*!
00039         \brief   set X and Y constant. If it return false, all values are 1.0f
00040                 and ComputeByX() is false.
00041         \param  
00042     */
00043     virtual bool SetYZConstant( float _y,float _z);
00044     /*!
00045         \brief   
00046         \param  
00047     */
00048     virtual float ComputeByX( float _x);
00049 
00050 /*==================================================================
00051                                 PROTECTED
00052 ==================================================================*/
00053 protected:
00054     //! parameter for sinus rotation
00055     PackDynamicFloat    mSer_Center;
00056     //! parameter for geometry
00057     PackFloatByte_Limits    mSer_BigRay;
00058     //! parameter for distortion
00059     PackFloatByte_Limits    mSer_LittleRay;
00060     //! parameter for sinus rotation
00061     PackDynamicFloat    mSer_AxisRotation;
00062     //! added to mSer_BigRay
00063     PackDynamicFloat    mSer_BigRayVariation;
00064     //! added to mSer_LittleRay
00065     PackDynamicFloat    mSer_LittleRayVariation;
00066 
00067     //! rotation term, update by date.
00068     float   m_sinMove;
00069     //! rotation term, update by date.
00070     float   m_cosMove;
00071     //!
00072     float   m_littleRayConst;
00073     //!
00074     float   m_BigRayConst;
00075     //! update by date.
00076     float   m_ydyd;
00077     //! update by date.
00078     float   m_zz;
00079     float   m_center[4];
00080     float m_centerX,m_centerY;
00081 };
00082 #endif

      /\/\        4         N         k         !         N         D
                      _______  _ __ ___  _____            ___ _ _  ____
     ___________  __//___   /________  |/    / ___________\_______/    \
    /   _   _   \/   _     /    _   /      _/_/____/    _       __     /
   /    /   /       /     /    /    \      \/     /    /    \   \     /
  \\___/___/___/    ¯    _____/_____/       ______\___/_____/\________\\
               \________/_ ___ __ l____\      /elD!  
                 http://www.m4nkind.com \____/