//## begin module%1.4%.codegen_version preserve=yes // Read the documentation to learn more about C++ code generator // versioning. //## end module%1.4%.codegen_version //## begin module%3D9AC98B0294.cm preserve=no // %X% %Q% %Z% %W% //## end module%3D9AC98B0294.cm //## begin module%3D9AC98B0294.cp preserve=no //## end module%3D9AC98B0294.cp //## Module: Behavior%3D9AC98B0294; Pseudo Package specification //## Source file: C:\Program Files\Rational\Rose\C++\source\Behavior.h #ifndef Behavior_h #define Behavior_h 1 //## begin module%3D9AC98B0294.additionalIncludes preserve=no //## end module%3D9AC98B0294.additionalIncludes //## begin module%3D9AC98B0294.includes preserve=yes //## end module%3D9AC98B0294.includes // SIR #include "SIR.h" // Drive #include "Drive.h" //## begin module%3D9AC98B0294.additionalDeclarations preserve=yes class Commander; //## end module%3D9AC98B0294.additionalDeclarations //## begin Behavior%3D9AC98B0294.preface preserve=yes //## end Behavior%3D9AC98B0294.preface //## Class: Behavior%3D9AC98B0294 // /** // Base class from which all behaviors are derived. This // provides them with the same base properties and makes // adaptations that are to effect all behaviors easier. // @author Jia L. Du // */ //## Category: //## Persistence: Transient //## Cardinality/Multiplicity: n class Behavior { //## begin Behavior%3D9AC98B0294.initialDeclarations preserve=yes //## end Behavior%3D9AC98B0294.initialDeclarations public: //## Constructors (generated) Behavior(); // Additional Public Declarations //## begin Behavior%3D9AC98B0294.public preserve=yes // /** // Used to set the commander for this behavior // @param aCommander The commander for this behavior // @see myCommander // */ void setCommander(Commander& aCommander); // /** // The simulator does not allow the usage of RoBIOS functions // in class constructors. Therefore we use public // initialize methods for classes that need RoBIOS functions for // their initializations. // */ void initialize(void); //## end Behavior%3D9AC98B0294.public protected: // Data Members for Associations //## Association: %3D9ACA1C0118 //## Role: Behavior::%3D9ACA1D0140 // /** // Every Behavior gets access to the Drive to control robot // movement // */ //## begin Behavior::%3D9ACA1D0140.role preserve=no public: Drive { -> RHN} Drive *drive; //## end Behavior::%3D9ACA1D0140.role //## Association: %3D9ACA2B0226 //## Role: Behavior::%3D9ACA2E01CC // /** // Every Behavior gets access to the high-level environment // information provided by the SIR // */ //## begin Behavior::%3D9ACA2E01CC.role preserve=no public: SIR { -> RHN} SIR* sir; //## end Behavior::%3D9ACA2E01CC.role // Additional Protected Declarations //## begin Behavior%3D9AC98B0294.protected preserve=yes // /** // Every Behavior knows its own commander // (e.g. to tell the commander that the behavior // wants to cede control or wants to sleep for some time) // */ Commander* myCommander; // /** // Every Behavior knows the size of the // cluster area // */ double clusterRadius; // /** // This value is used to store the estimated cube density // of the current cluster point // */ double myClusterPointDensity; //## end Behavior%3D9AC98B0294.protected private: // Additional Private Declarations //## begin Behavior%3D9AC98B0294.private preserve=yes //## end Behavior%3D9AC98B0294.private private: //## implementation // Additional Implementation Declarations //## begin Behavior%3D9AC98B0294.implementation preserve=yes //## end Behavior%3D9AC98B0294.implementation }; //## begin Behavior%3D9AC98B0294.postscript preserve=yes //## end Behavior%3D9AC98B0294.postscript // Class Behavior //## begin module%3D9AC98B0294.epilog preserve=yes //## end module%3D9AC98B0294.epilog #endif