Files
Avancerad_CPP/Lab6/circle.h
2026-03-05 13:16:26 +01:00

117 lines
2.9 KiB
C++

//## begin module.cm preserve=no
// %X% %Q% %Z% %W%
//## end module.cm
//## begin module.cp preserve=no
//## end module.cp
//## Module: Circle; Pseudo Package specification
//## Subsystem: Figures
//## Source file: Circle.h
#ifndef Circle_h
#define Circle_h 1
//## begin module.additionalIncludes preserve=no
//## end module.additionalIncludes
//## begin module.includes preserve=yes
//## end module.includes
// Point
#include "Point.h"
// Figure
#include "Figure.h"
//## begin module.additionalDeclarations preserve=yes
//## end module.additionalDeclarations
//## Class: Circle
//## Category: Figures
//## Subsystem: Figures
//## Persistence: Transient
//## Cardinality/Multiplicity: n
class Circle : virtual public Figure //## Inherits: <unnamed>
{
//## begin Circle.initialDeclarations preserve=yes
//## end Circle.initialDeclarations
public:
//## Constructors (generated)
Circle();
//## Constructors (specified)
//## Operation: Circle%939623931
Circle (int x, int y, int r, Color color);
//## Destructor (generated)
~Circle();
//## Other Operations (specified)
//## Operation: draw%937398670
void draw (Graphics &g);
//## Operation: erase%937398671
void erase (Graphics &g);
//## Operation: clone%937398683
Figure * clone ();
// Additional Public Declarations
//## begin Circle.public preserve=yes
const Point& getCenter() const {return center;}
void setCenter(int x, int y){center.setx(x), center.sety(y);}
const int getRad() const {return radius;}
void setRad(int value) { radius=value;}
Color getColor() {return Figure::getColor();}
void setColor(Color c) {Figure::setColor(c);}
//## end Circle.public
protected:
// Additional Protected Declarations
//## begin Circle.protected preserve=yes
//## end Circle.protected
private:
// Additional Private Declarations
//## begin Circle.private preserve=yes
//## end Circle.private
private: //## implementation
// Data Members for Has Relationships
//## Documentation Circle::center.has
//## begin Circle::center.has preserve=no private: Point {1 -> 1VO}
Point center;
//## end Circle::center.has
// Data Members for Class Attributes
//## Attribute: radius
//## begin Circle::radius.attr preserve=no private: int {U}
int radius;
//## end Circle::radius.attr
// Additional Implementation Declarations
//## begin Circle.implementation preserve=yes
//## end Circle.implementation
};
//## begin Circle.postscript preserve=yes
//## end Circle.postscript
// Class Circle
//## begin module.epilog preserve=yes
//## end module.epilog
#endif