00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include "controler-gmap.hh"
00026 #include "view-precompile.hh"
00027 #include <cstdlib>
00028 #include <sys/types.h>
00029 #include <sys/stat.h>
00030 #include <fcntl.h>
00031
00032 using namespace std;
00033 using namespace GMap3d;
00034
00035 CControlerGMap::CControlerGMap(CGMapVertex* AGMapVertex,
00036 const string & ADirectory) :
00037 CControler(LAST_PRECOMPILE_CONTROLER_GMAP,
00038 CONTROLER_GMAP_DIRECTORY, ADirectory),
00039
00040 FDirectInfoPonderation(-1),
00041 #ifdef MODULE_ROUNDING
00042
00043 FRounding(NULL),
00044 #endif
00045 FDeselectMode(false),
00046
00047 FNbDarts(0),
00048 FNbSelectedDarts(0),
00049 FNbVertices(0),
00050
00051 FMap(AGMapVertex == NULL ? new CGMapVertex() : AGMapVertex),
00052 FParameterGMapVertex(new CParameterGMapVertex(FMap, 1)),
00053 FParameterSelection(new CParameterSelection(this, NB_SELECTION_LEVELS,
00054 1)),
00055 FParameterCreation(new CParameterCreation(1)),
00056 FParameterPolylinePosition(new CParameterPolylinePosition(1)),
00057 FParameterOperations(new CParameterOperations(1)),
00058 FParameterTranslation(new CParameterObjectTranslation(1)),
00059 FParameterRotation(new CParameterObjectRotation(1)),
00060 FParameterScale(new CParameterObjectScale(1)),
00061 FParameterPonderation(new CParameterObjectPonderation(1))
00062 {
00063 assert(FMap != NULL);
00064
00065 for (int i = 0; i < NB_PREDEFINED_OBJECTS; ++i)
00066 {
00067 bool rotate = i == OBJECT_SPHERE || i == OBJECT_PYRAMID
00068 || i == OBJECT_CYLINDER;
00069 FParameterObjectPosition[i] = new CParameterObjectPosition(rotate, 1);
00070 }
00071 }
00072
00073 CControlerGMap::~CControlerGMap()
00074 {
00075 FParameterGMapVertex->decNbRef();
00076 FParameterSelection->decNbRef();
00077 FParameterCreation->decNbRef();
00078 FParameterPolylinePosition->decNbRef();
00079 FParameterOperations->decNbRef();
00080 FParameterTranslation->decNbRef();
00081 FParameterRotation->decNbRef();
00082 FParameterScale->decNbRef();
00083 FParameterPonderation->decNbRef();
00084
00085 for (int i = 0; i < NB_PREDEFINED_OBJECTS; ++i)
00086 FParameterObjectPosition[i]->decNbRef();
00087 }
00088
00089 CGMapVertex* CControlerGMap::getMap()
00090 { return FMap; }
00091