00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _AgentParcelList_h
00021 #define _AgentParcelList_h
00022
00023
00024
00025 #include "AgentParcel.h"
00026 #include "MarketNonTradablesBid.h"
00027
00028 #include "GridCellHandler.h"
00029
00030
00031 class p_liste
00032 { protected:
00033 int sc_nr;
00034 int b_nr;
00035
00036 int panzahl;
00037 int letzte_p_nr;
00038
00039 int* MainTypeInNRU;
00040 int** NumPlotsInNRU;
00041 double* avgSlNRU;
00042 double* avgSeNRU;
00043
00044 parzelle* firstParzelle;
00045 parzelle* lastParzelle;
00046 parzelle* merkeParzelle;
00047
00048 virtual void initialize(void);
00049
00050 public:
00051 p_liste(int, int);
00052
00053 p_liste();
00054
00055 virtual ~p_liste()
00056 { liste_loeschen();
00057 }
00058
00059
00060
00061
00062
00063 virtual void parzelle_anlegen(int,int,int,int,int,int, int = 1,double = 0.0);
00064 virtual void deallokieren(parzelle*);
00065 virtual void einfuegen(parzelle*);
00066 virtual int get_anzahl(void);
00067 virtual int get_anz_typ(int soilType);
00068 virtual int get_nummer(void);
00069 virtual int get_hofx();
00070 virtual int get_hofy();
00071
00072 virtual parzelle* parzelle_suchen(int z, int s);
00073 virtual parzelle* erste_suchen(int);
00074 virtual parzelle* naechste_suchen(int);
00075 virtual parzelle* letzte_suchen(int);
00076 virtual parzelle* vorherige_suchen(int);
00077 virtual parzelle* fernste_belegt(int);
00078 virtual parzelle* getFirst();
00079 virtual parzelle* getLast();
00080
00081
00082
00083
00084
00085 virtual void obst_parzellen_belegen(double, double);
00086 virtual void forst_parzellen_belegen(double, double);
00087 virtual void blockHectaresInParcelsForPermanentCrops(int soilType, double existingHa, double deltaHa, string outputStr);
00088
00089 virtual double typ_parzellen_belegen(int, double);
00090 virtual double blockParcels(int soilType, double sizeHa);
00091
00092 virtual void obst_parzellen_freigeben(double, double);
00093 virtual void forst_parzellen_freigeben(double, double);
00094 virtual void freeHectaresInParcelsForPermanentCrops(int soilType, double totalHa, double reductionHa);
00095
00096
00097 virtual parzelle* verpachtbare_suchen(int);
00098 virtual double get_maxTK(int);
00099
00100 virtual parzelle* parzelle_herausnehmen(parzelle*);
00101 virtual double freie_parzelle_verkaufen(int, w_rechte*, double, int);
00102 virtual double belegte_parzelle_verkaufen(int, w_rechte*, double,int);
00103 virtual double hofparzelle_verkaufen(w_rechte*, double, int);
00104
00105
00106
00107
00108 virtual void verpachten(int, int, w_jahr*);
00109 virtual void zupachten(int, int, double, w_jahr*);
00110 virtual void alles_verpachten(int, w_jahr*);
00111 virtual void verpachtet_belegen(int z, int s);
00112 virtual void verpachtungen_aufloesen();
00113 virtual double entfernungskosten_aktualisieren();
00114
00115
00116 virtual void makeConvVector(void);
00117 virtual void makeConvMatrix(void);
00118 virtual void makeAvSlVector(void);
00119 virtual void makeAvSeVector(void);
00120 virtual void makeMTypesInNRUs(void);
00121 virtual int getMTypeForNRU(int nru);
00122 virtual int getNRUForMType(int typ);
00123 virtual int getNumPlotsInNRU(int nru);
00124 virtual int getNRUForType(int typ);
00125 virtual int getFreeNRU(void);
00126 virtual double getAvSlNRU(int nru);
00127 virtual double getAvSeNRU(int nru);
00128 virtual void assignPlotsToNRUs(int*& sTypes);
00129 virtual void mergeSoilTypes(int& numTypes, int*& sTypes, int*& typToTyp);
00130 virtual void assignNRUsToPlots(void);
00131 virtual void initValuesNRUs(int sk_nr);
00132 virtual parzelle* searchFirstNRU(int nru);
00133 virtual parzelle* searchNextNRU(int nru);
00134 virtual sProc* getSProcNRU(int nru);
00135 virtual lUseH getLUseHNRU(int nru);
00136 virtual void calcYields(int kID, int fID, int nru, crpMixNRU*& cmNRU);
00137
00138
00139
00140
00141
00142
00143
00144 virtual void copyContent_Parcels2Landscape(Content cont);
00145 virtual void copyContent_Parcels2Landscape_monthly(Content cont, int m);
00146
00147
00148 virtual void copyContent_Landscape2Parcels(Content cont);
00149 virtual void copyContent_Landscape2Parcels(Content cont, bool flag_fixCopyToCell);
00150 virtual void copyContent_Landscape2Parcels_monthly(Content cont, int m);
00151
00152
00153 virtual double getMeanOfAllParcels(Content cont);
00154
00155
00156 virtual void printToScreen(parzelle*);
00157 virtual void printOnScreen_list(void);
00158
00159 virtual void liste_loeschen(void);
00160
00161 virtual void writeParcelDataInStrm(FILE* stream0,
00162 int agID,
00163 int scID,
00164 int skID,
00165 int fsID,
00166 int poID,
00167 int clID,
00168 int nwID,
00169 int sgID,
00170 int expT,
00171 int colr,
00172 int numP);
00173
00174 virtual void writeAllParcelsToFile(ofstream& out);
00175
00176 virtual void writeAllParcelsToFileBackwards(ofstream& out);
00177
00178
00179
00180 virtual parzelle* allocateOneHaToActivityPP(int crA);
00181
00182
00183
00184 virtual void clearList(void);
00185
00186
00187
00188 virtual int getPosInList(parzelle* searchParcel);
00189
00190
00191 virtual int append(parzelle* newParcel);
00192
00193 virtual int get_len(void);
00194
00195
00196
00197
00198
00199
00200
00201 };
00202
00203
00204 #endif
00205