#pragma once #ifndef SELECTION #define SELECTION 1 #include "Area.h" #include "MadMap.h" //=======================Selection==================================== //area su cui è possibile applicare funzioni di modifica sulla mappa //==================================================================== class Selection : public Area { public: //===================applied======================================== //true se una funzione è stata applicata consecutivamente più di una //volta; false altrimenti //================================================================== bool applied; public: //===================Costruttore==================== //non seleziona nessuna area all'interno della mappa //================================================== Selection(void); //===================Costruttore==================== //seleziona un'area di ampiezza 1x1 <br> // <br> //Parametri: <br> //x. coordinata x della area selezionata <br> //z. coordinata z della area selezionata <br> //================================================== Selection(int x, int z); /**Distruttore*/ ~Selection(void); //===================flat====================================== //appiattisce tutta la zona selezionata nella map a al valore h //============================================================= void flat(MadMap *map, double h); //===================incline=================================== //crea un piano inclinato nella map con pendenza k nell'area //della selection //============================================================= void incline(MadMap *map, double h); //===================level===================================== //livella ogni tile all'altezza del valore del campo C //incrementato di k //============================================================= void level(MadMap *map, double k); //===================slide===================================== //alza senza dislivelli la selezione nella map di k //============================================================= void slide(MadMap *map, double k); //===================set======================================== //permette selezionare un'area per la selection <br> // <br> //Parametri <br> //returnfirstPick: un intero dove il modulo 100 è //la coordinata X del primo elemento dell'area selezionata //mentre la divisione intera per 100 è la coordinata Z del //primo elemento dell'area selezionata <br> // //returnsecondPick: un intero dove il modulo 100 è l //a coordinata X dell'ultimo elemento dell'area selezionata //mentre la divisione intera per 100 è la coordinata Z //dell'ultimo elemento dell'area selezionata //============================================================== void set(int rfp, int rlp); //===================up========================================= //alza tutta la zona selezionata nella map di un valore k //============================================================== void up(MadMap *map, double k); //===================zero======================================= //pone tutta la zona selezionata nella map all'altezza di k //============================================================== void zero(MadMap *map,double k); //===================pyramid==================================== //crea una piramide nell'area selezionata di altezza k //============================================================== void pyramid(MadMap *map,double k); //===================function=================================== //seleziona la funzione per modificare la mappa da applicare<br> // <br> //Parametri <br> //map: puntatore alla MadMap da modificare <br> //undomap: puntatore alla MadMap usata per l'undo <br> //type: tipo del metodo della Selection da //applicare(LEVEL,SLIDE,INCLINE,FLAT,UP,ZERO,PYRAMID <br> //val: valore da passare al funzione di modifica della mappa<br> //============================================================== void function(MadMap *map, MadMap *undomap, int type, double val ); }; #endif