progress on lab 5 part 2

This commit is contained in:
2022-05-03 11:53:11 -05:00
parent e381f5d7ca
commit 780c2bba3c
5 changed files with 192 additions and 15 deletions

View File

@@ -0,0 +1,78 @@
/**
* @file image.cpp
* @author Trevor Barnes (barnestr@msoe.edu)
* @brief
* @version 1.0
* @date 2022-04-19
*
* @copyright Copyright (c) 2022
*
*/
#include "image.h"
// TODO
Image::Image(){
shapes.clear();
}
// TODO
Image::Image(const Image& from){
for(int i = 0; i < from.shapes.size(); i++){
shapes.push_back(from.shapes[i]->clone());
}
}
// TODO
Image::~Image(){
for(int i = 0; i < shapes.size(); i++){
delete shapes[i];
}
shapes.clear();
}
// TODO
Image &Image::operator=(const Image& rhs){
for(int i = 0; i < shapes.size(); i++){
delete shapes[i];
}
shapes.clear();
for(int i = 0; i < rhs.shapes.size(); i++){
shapes.push_back(rhs.shapes[i]->clone());
}
return *this;
}
// TODO
void Image::add(Shape* shape){
shapes.push_back(shape);
}
// TODO
void Image::draw(GraphicsContext* gc){
for(int i = 0; i < shapes.size(); i++){
shapes[i]->draw(gc);
}
}
// TODO
void Image::out(std::ostream& os){
for(int i = 0; i < shapes.size(); i++){
shapes[i]->out(os);
os << endl;
}
}
// TODO
void Image::in(std::istream& is){
}
// TODO
void Image::erase(){
for(int i = 0; i < shapes.size(); i++){
delete shapes[i];
}
shapes.clear();
}