Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstring>
- #include <cassert>
- #include "Figure.hpp"
- #include "Scheme.hpp"
- #define func_for for (int i = 0; i < this->size; i++)
- Scheme::Scheme(int capacity) {
- this->figures_ = new Figure*[capacity];
- this->size = 0;
- }
- Scheme::~Scheme() {
- func_for {
- delete this->figures_[i];
- }
- delete [] this->figures_;
- }
- void Scheme::push_back_figure(Figure* fg) {
- this->figures_[size++] = fg;
- }
- void Scheme::remove_figure(int id) {
- func_for {
- if (this->figures_[i]->figure_id() == id) {
- delete this->figures_[i];
- for (int j = i; j + 1 < size; ++j){
- this->figures_[i] = this->figures_[i + 1];
- }
- this->size--;
- return;
- }
- }
- }
- void Scheme::print_all_figures() {
- func_for {
- assert(this->figures_[i] != nullptr);
- this->figures_[i]->print();
- }
- }
- void Scheme::zoom_figure(int id, int factor) {
- func_for {
- if (this->figures_[i]->figure_id() == id) {
- this->figures_[i]->zoom(factor);
- }
- }
- }
- Figure* Scheme::is_inside_figure(int x, int y) {
- func_for {
- if (this->figures_[i]->is_inside(x, y)) {
- return this->figures_[i];
- }
- }
- return nullptr;
- }
- void Scheme::move(int id, int new_x, int new_y) {
- func_for {
- if (this->figures_[i]->figure_id() == id) {
- this->figures_[i]->move(new_x, new_y);
- return;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement