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