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