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 "g-map-vertex.hh"
00026 #include "controler-gmap.hh"
00027 #include <cassert>
00028
00029 using namespace GMap3d;
00030
00031 bool CControlerGMap::lookAtLast(TViewId AView)
00032 {
00033 CDart *last=getLastSelectedDart();
00034 if (last!=NULL)
00035 {
00036 CVertex* v = FMap->findVertex(last);
00037 getParameterAimedPosition(AView)->setLookAt(0, v->getX());
00038 getParameterAimedPosition(AView)->setLookAt(1, v->getY());
00039 getParameterAimedPosition(AView)->setLookAt(2, v->getZ());
00040 return true;
00041 }
00042 return false;
00043 }
00044
00045 bool CControlerGMap::lookAtFaceBary(TViewId AView)
00046 {
00047 CDart *last=getLastSelectedDart();
00048 if (last!=NULL)
00049 {
00050 CVertex v = FMap->centerOfBoundingBox(last,ORBIT_01);
00051 getParameterAimedPosition(AView)->setLookAt(0,v.getX());
00052 getParameterAimedPosition(AView)->setLookAt(1,v.getY());
00053 getParameterAimedPosition(AView)->setLookAt(2,v.getZ());
00054 return true;
00055 }
00056 return false;
00057 }
00058
00059 bool CControlerGMap::lookAtVolumeBary(TViewId AView)
00060 {
00061 CDart *last=getLastSelectedDart();
00062 if (last!=NULL)
00063 {
00064 CVertex v = FMap->centerOfBoundingBox(last,ORBIT_012);
00065 getParameterAimedPosition(AView)->setLookAt(0,v.getX());
00066 getParameterAimedPosition(AView)->setLookAt(1,v.getY());
00067 getParameterAimedPosition(AView)->setLookAt(2,v.getZ());
00068 return true;
00069 }
00070 return false;
00071 }
00072
00073 bool CControlerGMap::lookAtCcBary(TViewId AView)
00074 {
00075 CDart *last=getLastSelectedDart();
00076 if (last!=NULL)
00077 {
00078 CVertex v = FMap->centerOfBoundingBox(last,ORBIT_0123);
00079 getParameterAimedPosition(AView)->setLookAt(0,v.getX());
00080 getParameterAimedPosition(AView)->setLookAt(1,v.getY());
00081 getParameterAimedPosition(AView)->setLookAt(2,v.getZ());
00082 return true;
00083 }
00084 return false;
00085 }
00086
00087 bool CControlerGMap::lookAtSelectedBary(TViewId AView)
00088 {
00089 CVertex v = FMap->centerOfBoundingBox(getSelectionMark());
00090
00091 getParameterAimedPosition(AView)->setLookAt(0,v.getX());
00092 getParameterAimedPosition(AView)->setLookAt(1,v.getY());
00093 getParameterAimedPosition(AView)->setLookAt(2,v.getZ());
00094
00095 return true;
00096 }
00097
00098 bool CControlerGMap::lookAtAllBary(TViewId AView)
00099 {
00100 int mark = FMap->getNewMark();
00101
00102 FMap->negateMaskMark(mark);
00103
00104 CVertex v = FMap->centerOfBoundingBox(mark);
00105
00106 FMap->negateMaskMark(mark);
00107
00108 FMap->freeMark(mark);
00109
00110 getParameterAimedPosition(AView)->setLookAt(0,v.getX());
00111 getParameterAimedPosition(AView)->setLookAt(1,v.getY());
00112 getParameterAimedPosition(AView)->setLookAt(2,v.getZ());
00113
00114 return true;
00115 }
00116