![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 00002 /******************************************************************************* 00003 ** Copyright (c) 2009 MAK Technologies, Inc. 00004 ** All rights reserved. 00005 *******************************************************************************/ 00006 /******************************************************************************* 00007 * Copyright 2009 Autodesk, Inc. All rights reserved. 00008 * Use of this software is subject to the terms of the Autodesk license 00009 * agreement provided at the time of installation or download, or which otherwise 00010 * accompanies this software in either electronic or hard copy form. 00011 *******************************************************************************/ 00012 00013 00014 // 00016 // 00017 00018 #ifndef KYNAPSE_GROUNDPLATFORM_CONTROLLER_H 00019 #define KYNAPSE_GROUNDPLATFORM_CONTROLLER_H 00020 00021 #include <bhaveSim/bhaveSimDefines.h> 00022 #include "bhaveSim/kynapseCtrl.h" 00023 00024 #include <vrfobjcore/taskCtlrCmpnt.h> 00025 #include <vrfobjcore/entityTargetInformation.h> 00026 #include <vrftasks/userTask.h> 00027 00028 class DtAnalogOutputPort; 00029 class DtBooleanOutputPort; 00030 class DtConstrainedIntegerOutputPort; 00031 class DtConstrainedAnalogOutputPort; 00032 class DtOutputPortGroup; 00033 class DtGroundVehicleStateRepository; 00034 class DtKynapsePSR; 00035 class DtScenario; 00036 class DtAnalogOutputPort; 00037 class DtAnalogOutputPort; 00038 class DtOutputPortGroup; 00039 class DtSensorContactListInputPort; 00040 class DtSensorContactInfoList; 00041 class DtSoilFactors; 00042 00043 00044 namespace BHAVE 00045 { 00046 00048 const char DtKynapseGroundPlatformControllerType[] = "kynapse-ground-platform-controller"; 00049 00056 class DT_DLL_bhaveSim DtKynapseGroundPlatformController : public DtKynapseController 00057 { 00058 public: 00059 00061 DtKynapseGroundPlatformController(const DtString & name, DtVrfObject* owner, 00062 DtSimManager * simManager, DtComponentDescriptor* desc = NULL, 00063 DtReaderWriterRegistry * parentRegistry = 0); 00064 00066 virtual ~DtKynapseGroundPlatformController(); 00067 00069 DtKynapseGroundPlatformController(const DtKynapseGroundPlatformController& orig); 00070 00072 DtKynapseGroundPlatformController& operator=(const DtKynapseGroundPlatformController& orig); 00073 00074 virtual bool init(); 00075 00077 virtual DtString type() const; 00078 00080 virtual void setComponentDescriptor(DtComponentDescriptor* descriptor); 00081 00083 static DtSimComponent* creator(const DtString& name, 00084 DtVrfObject* owner, DtSimManager* simManager, DtComponentDescriptor* desc, 00085 DtReaderWriterRegistry* parentRegistry); 00086 00087 00090 virtual double maxAcceleration() const; 00093 virtual double maxDeceleration() const; 00094 00095 protected: 00096 00098 virtual DtBoolean createPorts(); 00099 virtual DtBoolean createPortGroups(); 00100 00104 virtual DtBoolean applyKynapseRecommendations(); 00105 00106 virtual DtBoolean deactivateOutputControl(); 00107 00109 virtual const DtSoilFactors* soilFactors() const; 00112 virtual double slope() const; 00113 00114 00115 protected: 00116 00119 DtAnalogOutputPort* myDirectionOutputPort; 00120 DtAnalogOutputPort* mySpeedOutputPort; 00121 DtBooleanOutputPort* myTurningDirectionOutputPort; 00122 DtAnalogOutputPort* myFacingDirectionOutputPort; 00123 DtOutputPortGroup* myMovementControlOutputPortGroup; 00125 00126 }; 00127 00128 #endif //! KYNAPSE_GROUNDPLATFORM_CONTROLLER_H 00129 00130 } //namespace BHAVE