//## 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%3D86D3FC0244.cm preserve=no // %X% %Q% %Z% %W% //## end module%3D86D3FC0244.cm //## begin module%3D86D3FC0244.cp preserve=no //## end module%3D86D3FC0244.cp //## Module: Camera%3D86D3FC0244; Pseudo Package specification //## Source file: C:\Program Files\Rational\Rose\C++\source\Camera.h #ifndef Camera_h #define Camera_h 1 //## begin module%3D86D3FC0244.additionalIncludes preserve=no //## end module%3D86D3FC0244.additionalIncludes //## begin module%3D86D3FC0244.includes preserve=yes #include "eyebot.h" #include "Version.h" //## end module%3D86D3FC0244.includes //## begin module%3D86D3FC0244.additionalDeclarations preserve=yes //## end module%3D86D3FC0244.additionalDeclarations //## begin Camera%3D86D3FC0244.preface preserve=yes //## end Camera%3D86D3FC0244.preface //## Class: Camera%3D86D3FC0244 // /** // This class provides methods to access the robot camera. // The class is designed as a singleton class. This is to // ensure that the camera initialization process is only // executed once as multiple initializations will result in // errors. So at any given time there is at most one // instance of the class. The method Camera::getCamera() is // used to access that instance. // @author Jia L. Du // */ //## Category: //## Persistence: Transient //## Cardinality/Multiplicity: n class Camera { //## begin Camera%3D86D3FC0244.initialDeclarations preserve=yes //## end Camera%3D86D3FC0244.initialDeclarations public: //## Other Operations (specified) //## Operation: initialize%3D92923E00DC // /** // Initializes the camera for usage. Should automatically be called by the // constructor. But as the EyeSim simulator is not able to execute RoBIOS // library functions in class constructors, we have declared this method as // public and need to call this method manually in main // @return true if successful // */ bool initialize (); //## Operation: getCamera%3D9AA24401FE // /** // This method is used to get the instance of this // singleton class // @return A pointer to the instance // */ static Camera* getCamera (); //## Operation: getFrame%3D9292500154 // /** // This methods takes an image from the color camera and // converts it to grayscale // @param aImage A reference to the image // */ void getFrame (image& aImage); //## Operation: getColorFrame%3D92926000DC // /** // This methods takes an image from the color camera // @param aColorImage A reference to the color image // */ void getColorFrame (colimage& aColorImage); // Additional Public Declarations //## begin Camera%3D86D3FC0244.public preserve=yes //## end Camera%3D86D3FC0244.public protected: //## Constructors (generated) Camera(); //## Destructor (generated) ~Camera(); //## Other Operations (specified) //## Operation: release%3D92923E010E // /** // Releases the camera after usage. Is automatically called by the // destructor // @return true if successful // */ bool release (); // Additional Protected Declarations //## begin Camera%3D86D3FC0244.protected preserve=yes //## end Camera%3D86D3FC0244.protected private: // Additional Private Declarations //## begin Camera%3D86D3FC0244.private preserve=yes // /** // Used internally to control the camera servo // */ ServoHandle cameraServoHandle; //## end Camera%3D86D3FC0244.private private: //## implementation // Data Members for Class Attributes //## Attribute: aCamera%3D9AA26D032A // /** // The single instance that exists of this class // @see Camera::getCamera() // */ //## begin Camera::aCamera%3D9AA26D032A.attr preserve=no private: static Camera {U} static Camera cameras[NUMBER_OF_ROBOTS]; //## end Camera::aCamera%3D9AA26D032A.attr // Additional Implementation Declarations //## begin Camera%3D86D3FC0244.implementation preserve=yes //## end Camera%3D86D3FC0244.implementation }; //## begin Camera%3D86D3FC0244.postscript preserve=yes //## end Camera%3D86D3FC0244.postscript // Class Camera //## begin module%3D86D3FC0244.epilog preserve=yes //## end module%3D86D3FC0244.epilog #endif