Moka controlers
 All Classes Namespaces Files Functions Variables Typedefs Enumerator Friends Macros
precompile-vertex.cc
Go to the documentation of this file.
1 /*
2  * lib-controler-gmap : Le contrôleur de 3-G-cartes, surcouche de lib-controler.
3  * Copyright (C) 2004, Moka Team, Université de Poitiers, Laboratoire SIC
4  * http://www.sic.sp2mi.univ-poitiers.fr/
5  * Copyright (C) 2009, Guillaume Damiand, CNRS, LIRIS,
6  * guillaume.damiand@liris.cnrs.fr, http://liris.cnrs.fr/
7  *
8  * This file is part of lib-controler-gmap
9  *
10  * This program is free software: you can redistribute it and/or modify
11  * it under the terms of the GNU Lesser General Public License as published by
12  * the Free Software Foundation, either version 3 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU Lesser General Public License for more details.
19  *
20  * You should have received a copy of the GNU Lesser General Public License
21  * along with this program. If not, see <http://www.gnu.org/licenses/>.
22  */
23 
24 //******************************************************************************
25 #include "controler-gmap-types.hh"
26 #include "precompile-vertex.hh"
27 #include "dart-vertex.hh"
28 #include "parameter-gmap-vertex.hh"
29 #include "parameter-vertex.hh"
30 #include <cassert>
31 using namespace GMap3d;
32 //******************************************************************************
34  CParameterVertex * AParameterVertex) :
35  FParameterGMapV (AParameterGMapV),
36  FParameterVertex (AParameterVertex)
37 {
38  assert(FParameterGMapV!=NULL && FParameterVertex!=NULL);
39 
40  FParameterGMapV->addPrecompileToUpdate(this);
41  FParameterVertex->addPrecompileToUpdate(this);
42 }
43 //******************************************************************************
45  CPrecompile (APrecompile),
46  FParameterGMapV (APrecompile.FParameterGMapV),
47  FParameterVertex (static_cast<CParameterVertex*>
48  (APrecompile.FParameterVertex->copy()))
49 {
50  assert(FParameterGMapV!=NULL && FParameterVertex!=NULL);
51 
52  FParameterGMapV->addPrecompileToUpdate(this);
53  FParameterVertex->addPrecompileToUpdate(this);
54 }
55 //******************************************************************************
57 {
58  FParameterGMapV->removePrecompileToUpdate(this);
59  FParameterVertex->removePrecompileToUpdate(this);
60 }
61 //******************************************************************************
63 { return new CPrecompileVertex(*this); }
64 //******************************************************************************
66 {
67  switch (AParameter->getType())
68  {
70  setGMapVertex(static_cast<CParameterGMapVertex *>(AParameter));
71  break;
72  case PARAMETER_VERTEX:
73  setVertex(static_cast<CParameterVertex *>(AParameter));
74  break;
75  }
76 }
77 //******************************************************************************
79 { return FParameterVertex; }
80 //******************************************************************************
82 {
83  assert(AParameterGMapV != NULL);
84  AParameterGMapV->addPrecompileToUpdate(this);
85  FParameterGMapV->removePrecompileToUpdate(this);
86  FParameterGMapV = AParameterGMapV;
87  setToUpdate();
88 }
89 //******************************************************************************
91 {
92  assert(AVertex != NULL);
93  AVertex->addPrecompileToUpdate(this);
94  FParameterVertex->removePrecompileToUpdate(this);
95  FParameterVertex = AVertex;
96  setToUpdate();
97 }
98 //******************************************************************************
100 { return PRECOMPILE_VERTEX; }
101 //******************************************************************************
103 {
104  glPointSize(FParameterVertex->getSVertex());
105  glColor3fv(FParameterVertex->getCLVertex());
106 
107  glBegin(GL_POINTS);
108 
109  for (CDynamicCoverageAll it(FParameterGMapV->getMap()); it.cont(); ++it)
110  {
111  CVertex * vertex = FParameterGMapV->getDrawingMap()
112  ->getVertex(FParameterGMapV->getDartWithEmbedding(*it));
113 
114  if (vertex != NULL)
115  PLOT(vertex);
116  }
117 
118  glEnd();
119 }
120 //******************************************************************************