AgentDescriptor.h

Go to the documentation of this file.
00001 /************************************************************************
00002 * Verve                                                                 *
00003 * Copyright (C) 2004-2006                                               *
00004 * Tyler Streeter  tylerstreeter@gmail.com                               *
00005 * All rights reserved.                                                  *
00006 * Web: http://verve-agents.sourceforge.net                              *
00007 *                                                                       *
00008 * This library is free software; you can redistribute it and/or         *
00009 * modify it under the terms of EITHER:                                  *
00010 *   (1) The GNU Lesser General Public License as published by the Free  *
00011 *       Software Foundation; either version 2.1 of the License, or (at  *
00012 *       your option) any later version. The text of the GNU Lesser      *
00013 *       General Public License is included with this library in the     *
00014 *       file license-LGPL.txt.                                          *
00015 *   (2) The BSD-style license that is included with this library in     *
00016 *       the file license-BSD.txt.                                       *
00017 *                                                                       *
00018 * This library is distributed in the hope that it will be useful,       *
00019 * but WITHOUT ANY WARRANTY; without even the implied warranty of        *
00020 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files    *
00021 * license-LGPL.txt and license-BSD.txt for more details.                *
00022 ************************************************************************/
00023 
00024 #ifndef VERVE_AGENT_DESCRIPTOR_H
00025 #define VERVE_AGENT_DESCRIPTOR_H
00026 
00027 #include "Globals.h"
00028 
00029 namespace verve
00030 {
00032         struct ContinuousSensorDescriptor
00033         {
00034                 ContinuousSensorDescriptor()
00035                 {
00036                         isCircular = false;
00037                 }
00038 
00045                 bool isCircular;
00046         };
00047 
00049         struct DiscreteSensorDescriptor
00050         {
00051                 DiscreteSensorDescriptor()
00052                 {
00053                         numOptions = 0;
00054                 }
00055 
00059                 unsigned int numOptions;
00060         };
00061 
00064         class AgentDescriptor
00065         {
00066         public:
00067                 VERVE_DECL AgentDescriptor();
00068 
00069                 VERVE_DECL AgentDescriptor(const AgentDescriptor& desc);
00070                 
00071                 VERVE_DECL virtual ~AgentDescriptor();
00072 
00081                 VERVE_DECL virtual void VERVE_CALL addDiscreteSensor(
00082                         unsigned int numOptions);
00083 
00085                 VERVE_DECL virtual unsigned int VERVE_CALL 
00086                         getNumDiscreteSensors()const;
00087 
00090                 VERVE_DECL virtual unsigned int VERVE_CALL 
00091                         getDiscreteSensorNumOptions(unsigned int i)const;
00092 
00101                 VERVE_DECL virtual void VERVE_CALL addContinuousSensor(
00102                         bool isCircular = false);
00103 
00105                 VERVE_DECL virtual unsigned int VERVE_CALL 
00106                         getNumContinuousSensors()const;
00107 
00110                 VERVE_DECL virtual bool VERVE_CALL 
00111                         getContinuousSensorIsCircular(unsigned int i)const;
00112 
00114                 VERVE_DECL virtual void VERVE_CALL setNumOutputs(
00115                         unsigned int numOutputs);
00116 
00118                 VERVE_DECL virtual unsigned int VERVE_CALL getNumOutputs()const;
00119 
00123                 VERVE_DECL virtual void VERVE_CALL setContinuousSensorResolution(
00124                         unsigned int resolution);
00125 
00127                 VERVE_DECL virtual unsigned int VERVE_CALL 
00128                         getContinuousSensorResolution()const;
00129 
00133                 VERVE_DECL virtual void VERVE_CALL setDynamicRBFEnabled(
00134                         bool enabled);
00135 
00137                 VERVE_DECL virtual bool VERVE_CALL isDynamicRBFEnabled()const;
00138 
00140                 VERVE_DECL virtual void VERVE_CALL setArchitecture(
00141                         AgentArchitecture arch);
00142 
00144                 VERVE_DECL virtual AgentArchitecture VERVE_CALL getArchitecture()const;
00145 
00148                 VERVE_DECL virtual void VERVE_CALL setMaxNumPlanningSteps(
00149                         unsigned int steps);
00150 
00153                 VERVE_DECL virtual unsigned int VERVE_CALL 
00154                         getMaxNumPlanningSteps()const;
00155 
00158                 VERVE_DECL virtual void VERVE_CALL setPlanningUncertaintyThreshold(
00159                         real threshold);
00160 
00163                 VERVE_DECL virtual real VERVE_CALL 
00164                         getPlanningUncertaintyThreshold()const;
00165 
00166         private:
00168                 std::vector<DiscreteSensorDescriptor> mDiscreteSensors;
00169 
00171                 std::vector<ContinuousSensorDescriptor> mContinuousSensors;
00172 
00174                 unsigned int mNumOutputs;
00175 
00177                 unsigned int mContinuousSensorResolution;
00178 
00180                 bool mDynamicRBFEnabled;
00181 
00183                 AgentArchitecture mAgentArchitecture;
00184 
00186                 unsigned int mMaxNumPlanningSteps;
00187 
00190                 real mPlanningUncertaintyThreshold;
00191         };
00192 }
00193 
00194 #endif

Generated on Tue Jan 24 21:46:37 2006 for Verve by  doxygen 1.4.6-NO