21 #include <qopengltexture.h>
52 pTYElementGraphic = getElement()->getTopographie()->getGraphicObject().getRealPointer();
53 childs.push_back(pTYElementGraphic);
56 pTYElementGraphic->
getChilds(childs, recursif);
59 pTYElementGraphic = getElement()->getInfrastructure()->getGraphicObject().getRealPointer();
60 childs.push_back(pTYElementGraphic);
63 pTYElementGraphic->
getChilds(childs, recursif);
69 for (
unsigned int i = 0; i < TabSite.size(); i++)
71 pTYElementGraphic = TabSite.at(i)->getGraphicObject().getRealPointer();
72 childs.push_back(pTYElementGraphic);
75 pTYElementGraphic->
getChilds(childs, recursif);
82 if (!getElement()->isInCurrentCalcul())
91 float fSiteNodeAltitude = (float)getElement()->getAltiEmprise();
92 glTranslatef(0.0f, 0.0f, -fSiteNodeAltitude);
94 if (getElement()->getUseTopoFile())
112 _glTexture.setMinificationFilter(QOpenGLTexture::Nearest);
113 _glTexture.setMagnificationFilter(QOpenGLTexture::Nearest);
114 _glTexture.setWrapMode(QOpenGLTexture::Repeat);
125 float x =
_imgXSize / 2 * getElement()->getEchelle();
126 float y =
_imgYSize / 2 * getElement()->getEchelle();
127 OVector3D vecOrientation = getElement()->getOrientation().toVector3D();
128 TYPoint pt = getElement()->getPosition();
135 glEnable(GL_TEXTURE_2D);
136 glColor3f(1.f, 1.f, 1.f);
137 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
141 glAlphaFunc(GL_GREATER, (GLclampf)0);
142 glEnable(GL_ALPHA_TEST);
145 float fImgZOffset = 0.1f;
146 if (getElement()->getUseEmpriseAsCrbNiv())
148 fImgZOffset += (float)getElement()->getAltiEmprise();
154 if (vecOrientation.
norme() != 0)
157 angle =
SIGNE(vecOrientation.
_y) * acos(vecOrientation.
_x / vecOrientation.
norme());
158 angle = (
M_PI / 2.0) - angle;
161 glTranslatef(0.0f, 0.0f, fImgZOffset);
164 glRotatef(angle * 180 /
M_PI, 0.0, 0.0, 1.0);
167 glTexCoord2f(0.0, 0.0);
168 glVertex3f(pt.
_x - x, pt.
_y - y, pt.
_z);
170 glTexCoord2f(0.0, 1.0);
171 glVertex3f(pt.
_x - x, pt.
_y + y, pt.
_z);
173 glTexCoord2f(1.0, 1.0);
174 glVertex3f(pt.
_x + x, pt.
_y + y, pt.
_z);
176 glTexCoord2f(1.0, 0.0);
177 glVertex3f(pt.
_x + x, pt.
_y - y, pt.
_z);
182 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
183 glDisable(GL_ALPHA_TEST);
184 glDisable(GL_TEXTURE_2D);
187 glTranslatef(0.0f, 0.0f, -fImgZOffset);
193 ->setBackgroundImage(
_glImg, x, y, pt, vecOrientation);
197 if (!getElement()->getUseTopoFile())
200 ->unsetBackgroundImage();
203 getElement()->getTopographie()->getGraphicObject()->display(renderContext);
204 getElement()->getInfrastructure()->getGraphicObject()->display(renderContext);
208 glTranslatef(0.0f, 0.0f, 0.01f);
210 for (
unsigned int i = 0; i < TabSite.size(); i++)
214 if (TabSite.at(i)->getElement()->isInCurrentCalcul())
217 float fSiteNodeChildAltitude = pTYSiteNodeChild->
getAltiEmprise();
219 glTranslatef(0.0f, 0.0f, fSiteNodeChildAltitude);
220 TabSite.at(i)->getGraphicObject()->display(renderContext);
221 glTranslatef(0.0f, 0.0f, -fSiteNodeChildAltitude);
225 glTranslatef(0.0f, 0.0f, -0.01f + fSiteNodeAltitude);
229 void TYSiteNodeGraphic::connectUpdateSignal(QObject* pReceiver,
const char* member)
236 void TYSiteNodeGraphic::disconnectUpdateSignal(QObject* pReceiver,
const char* member)
double SIGNE(double a)
Return the number sign.
list< TYElementGraphic * > TYListPtrTYElementGraphic
List de pointeur de TYElement.
Contexte de rendu utilisé par les fonctions d'affichage.
Representation graphique d'un ensemble de sites (fichier header)
std::vector< LPTYSiteNodeGeoNode > TYTabSiteNodeGeoNode
Collection de noeuds geometriques de type TYSiteNode.
Representation graphique d'une topographie (fichier header)
double _y
y coordinate of OCoord3D
double _z
z coordinate of OCoord3D
double _x
x coordinate of OCoord3D
double norme() const
Computes the length of this vector.
classe graphique pour un element de base
bool _visible
Inique si l'element est visible.
virtual void update(bool force=false)
virtual void getChilds(TYListPtrTYElementGraphic &childs, bool recursif=true)
virtual void display(TYRenderContext &renderContext)
virtual void update(bool force=false)
TYSiteNodeGraphic(TYSiteNode *pElement)
QOpenGLTexture _glTexture
virtual void getChilds(TYListPtrTYElementGraphic &childs, bool recursif=true)
virtual void display(TYRenderContext &renderContext)
virtual ~TYSiteNodeGraphic()
const double getAltiEmprise() const
TYTabSiteNodeGeoNode & getListSiteNode()
QString getTopoFileName() const
classe graphique pour une topographie