Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   Related Pages  

rdControl.h

00001 // rdControl.h:
00002 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00003 // Copyright 2000, 2003 Realistic Dynamics, Inc.
00004 // All rights reserved.
00005 //
00006 // Please do not read, copy, distribute, or use without permission.
00007 // Contact: Frank C. Anderson, fca@RealisticDynamics.com
00008 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00009 #ifndef __rdControl_h__
00010 #define __rdControl_h__
00011 
00012 
00013 // INCLUDES
00014 #include <rdObject.h>
00015 #include <rdArray.h>
00016 #include "rdCntr.h"
00017 
00018 
00019 //=============================================================================
00020 //=============================================================================
00054 class RDSIMULATION_API rdControl : public rdObject
00055 {
00056 
00057 //=============================================================================
00058 // MEMBER DATA
00059 //=============================================================================
00060 public:
00061    static const char DEFAULT_NAME[];
00062    static const char PROP_IS_MODEL_CONTROL[];
00063    static const char PROP_DEFAULT_MIN[];
00064    static const char PROP_DEFAULT_MAX[];
00065 protected:
00068    bool _isModelControl;
00070    double _defaultMin;
00072    double _defaultMax;
00073 
00074 //=============================================================================
00075 // METHODS
00076 //=============================================================================
00077 public:
00078    rdControl(const char *aName="UNKOWN");
00079    rdControl(IDOM_Element *aElement);
00080    rdControl(const rdControl &aControl);
00081    virtual ~rdControl();
00082    virtual rdControl* copy() const = 0;
00083    virtual rdControl* copy(IDOM_Element *aElement) const = 0;
00084 private:
00085    void setNull();
00086    void copyData(const rdControl &aControl);
00087 
00088    //--------------------------------------------------------------------------
00089    // OPERATORS
00090    //--------------------------------------------------------------------------
00091 public:
00092    rdControl& operator=(const rdControl &aControl);
00093 
00094    //--------------------------------------------------------------------------
00095    // GET AND SET
00096    //--------------------------------------------------------------------------
00097    void setIsModelControl(bool aTrueFalse);
00098    bool getIsModelControl() const;
00099    // PARAMETERS
00100    // Number
00101    virtual int getNumParameters() const = 0;
00102    // Default Parameter Min
00103    void setDefaultParameterMin(double aMin);
00104    double getDefaultParameterMin() const;
00105    // Default Parameter Max
00106    void setDefaultParameterMax(double aMin);
00107    double getDefaultParameterMax() const;
00108    // Parameter Min
00109    virtual void setParameterMin(int aI,double aMin) = 0;
00110    virtual double getParameterMin(int aI) const = 0;
00111    // Parameter Max
00112    virtual void setParameterMax(int aI,double aMax) = 0;
00113    virtual double getParameterMax(int aI) const = 0;
00114    // Parameter Neighborhood
00115    virtual double getParameterTime(int aI) const = 0;
00116    virtual void getParameterNeighborhood(int aI,double &rTLower,double &rTUpper) const = 0;
00117    // Parmeter List
00118    virtual int getParameterList(double aT,rdArray<int> &rList) const = 0;
00119    virtual int getParameterList(double aTLower,double aTUpper,rdArray<int> &rList) const = 0;
00120    // Parameter Value
00121    virtual double getParameterValue(int aI) const = 0;
00122    virtual void setParameterValue(int aI,double aP) = 0;
00123    // CONTROL VALUE
00124    virtual double getControlValue(double aT=0.0) const = 0;
00125    virtual void setControlValue(double aT,double aX) = 0;
00126 
00127    //--------------------------------------------------------------------------
00128    // XML
00129    //--------------------------------------------------------------------------
00130    virtual void updateObject(bool aDeep=true);
00131    void updateData();
00132    virtual void updateNode(bool aDeep=true);
00133    virtual void generateNode(IDOM_Element *aParent);
00134 
00135 //=============================================================================
00136 }; // END of class rdControl
00137 //=============================================================================
00138 //=============================================================================
00139 
00140 #endif // __rdControl_h__

Generated on Wed Aug 20 02:17:05 2003 for Simulation Software by doxygen1.3