VedaLibDemo/Equ_XYZD_ShapeByEquation.h

00001 #ifndef COM_M4NKIND_Equ_XYZD_ShapeByEquation_H
00002 #define COM_M4NKIND_Equ_XYZD_ShapeByEquation_H
00003 
00004 #include "Equ_XYZD_Virtual.h"
00005 #include "PackFloatByte_Limits.h"
00006 #include "PackObjectReference.h"
00007 #include "PackULong_Flags.h"
00008 
00009 /*!
00010     \class  Equ_XYZD_ShapeByEquation
00011     \ingroup BaseObjectInherited_VedaLibDemo
00012     \brief  Equation For metaballs class Object3DMarchCube, redirects classic VirtualEquation
00013                 which match x=f(x,y,z,t)
00014 */
00015 class Equ_XYZD_ShapeByEquation : public Equ_XYZD_Virtual
00016 {
00017 /*==================================================================
00018                                 PUBLIC
00019 ==================================================================*/
00020 public:
00021     /*!
00022         \brief  Constructor. There should only be members initialisation there.
00023     */
00024     Equ_XYZD_ShapeByEquation(void);
00025 
00026     /*!
00027         \brief  Class Inheritance Descriptors. Also forces a destructor. See BASEOBJECT_DECLARE_... in .cpp
00028     */
00029     BASEOBJECT_DEFINE_CLASS(Equ_XYZD_ShapeByEquation);
00030     /*!
00031         \brief   Set the framedate, and compute all terms with a constant date.
00032             pass a int which must be equal to 0 at start.
00033         \param  _date           in seconds
00034         \param  _iTermIndex     an index of the equation term to process. 
00035         \param  _pbound         a 6 float table, xmin,xman,ymin,ymax,zmin,mzmax of the cube where values are !=1.0
00036         \return false if index is out of bounds.
00037     */
00038     virtual bool SetFrameDate( float _date, unsigned int _iTermIndex,float _pbound[6] );
00039 
00040     /*!
00041         \brief   set X and Y constant. If it return false, all values are 1.0f
00042                 and ComputeByX() is false.
00043         \param  
00044     */
00045     virtual bool SetYZConstant( float _y,float _z);
00046     /*!
00047         \brief   
00048         \param  
00049     */
00050     virtual float ComputeByX( float _x);
00051 
00052 /*==================================================================
00053                                 PROTECTED
00054 ==================================================================*/
00055 protected:
00056     //! some flags ?
00057     PackULong_Flags mSer_Flags;
00058     //! the equation used
00059     PackObjectReference mSer_Equation;
00060     //! the cube windowing domain
00061     PackFloatByte_Limits    mSer_Minimal;
00062     //! the cube windowing domain
00063     PackFloatByte_Limits    mSer_Maximal;
00064     //! the parameter passed to the equation:
00065     float   m_param[4];
00066 };
00067 #endif

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