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

suTrackObjectSet.h

00001 // suTrackObjectSet.h
00002 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00003 // Copyright 2002, 2003 Frank C. Anderson
00004 // Please do not read, copy, distribute, or use without permission.
00005 // Contact: Frank C. Anderson, fca@stanford.edu
00006 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00007 #ifndef __suTrackObjectSet_h__
00008 #define __suTrackObjectSet_h__
00009 
00010 // INCLUDES
00011 #include "suTrackControllerDLL.h"
00012 #include <rdTools.h>
00013 #include <rdArray.h>
00014 #include <rdObjectArray.h>
00015 #include <rdModel.h>
00016 #include "suTrackObject.h"
00017 
00018 
00019 // EXPORT LINE FOR MICROSOFT VISUAL C++
00020 #ifndef UNIX
00021 template class SUTRACKCONTROLLER_API rdArray<double>;
00022 #endif
00023 
00024 
00025 //=============================================================================
00026 //=============================================================================
00033 class SUTRACKCONTROLLER_API suTrackObjectSet : public rdObjectArray 
00034 {
00035 
00036 //=============================================================================
00037 // DATA
00038 //=============================================================================
00039 private:
00041    static rdObjectArray _ObjectTypes;
00042 protected:
00044    rdObjectArray _defaultObjects;
00046    rdModel *_model;
00048    rdArray<double> _pErrLast;
00050    rdArray<double> _pErr;
00052    rdArray<double> _vErrLast;
00054    rdArray<double> _vErr;
00056    rdArray<double> _w;
00058    rdArray<double> _aDes;
00060    rdArray<double> _a;
00061 
00062 //=============================================================================
00063 // METHODS
00064 //=============================================================================
00065    //--------------------------------------------------------------------------
00066    // CONSTRUCTION
00067    //--------------------------------------------------------------------------
00068 public:
00069    suTrackObjectSet();
00070    suTrackObjectSet(const char *aFileName);
00071    virtual ~suTrackObjectSet();
00072 private:
00073    void setNull();
00074    void constructDefaultObjects();
00075 
00076    //--------------------------------------------------------------------------
00077    // GET AND SET
00078    //--------------------------------------------------------------------------
00079 public:
00080    // TRACK OBJECTS
00081    suTrackObject* appendTrackObject(suTrackObject *aObject);
00082    suTrackObject* setTrackObject(int aIndex,suTrackObject *aObject);
00083    suTrackObject* getTrackObject(int aIndex) const;
00084    // MODEL
00085    void setModel(rdModel *aModel);
00086    rdModel* getModel() const;
00087    // FUNCTIONS
00088    void setFunctions(rdFunctionSet &aFuncSet);
00089    void setFunctionsForVelocity(rdFunctionSet &aFuncSet);
00090    void setFunctionsForAcceleration(rdFunctionSet &aFuncSet);
00091    // ERRORS
00092    rdArray<double>& getPositionErrorsLast();
00093    rdArray<double>& getPositionErrors();
00094    rdArray<double>& getVelocityErrorsLast();
00095    rdArray<double>& getVelocityErrors();
00096    // WEIGHTS
00097    rdArray<double>& getWeights();
00098    // DESIRED ACCELERATIONS
00099    rdArray<double>& getDesiredAccelerations();
00100    // ACCELERATIONS
00101    rdArray<double>& getAccelerations();
00102 
00103    //--------------------------------------------------------------------------
00104    // COMPUTATIONS
00105    //--------------------------------------------------------------------------
00106    void recordErrorsAsLastErrors();
00107    void computeErrors(double aT);
00108    void computeDesiredAccelerations(double aT);
00109    void computeAccelerations();
00110 
00111    //--------------------------------------------------------------------------
00112    // REGISTER SUPPORTED TRACK OBJECTS
00113    //--------------------------------------------------------------------------
00114    static void RegisterType(const suTrackObject &aObject);
00115 
00116    //--------------------------------------------------------------------------
00117    // XML
00118    //--------------------------------------------------------------------------
00119    void updateObject(bool aDeep=true);
00120    void updateNode(bool aDeep=true);
00121    void generateNode(IDOM_Element *aParent);
00122 
00123 //=============================================================================
00124 }; // END of class suTrackObjectSet
00125 //=============================================================================
00126 //=============================================================================
00127 
00128 #endif // __suTrackObjectSet_h__
00129 
00130 

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