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()) && (
_visible))
112 _glTexture.setMinificationFilter(QOpenGLTexture::Nearest);
113 _glTexture.setMagnificationFilter(QOpenGLTexture::Nearest);
114 _glTexture.setWrapMode(QOpenGLTexture::Repeat);
130 glEnable(GL_TEXTURE_2D);
131 glColor3f(1.f, 1.f, 1.f);
132 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
136 glAlphaFunc(GL_GREATER, (GLclampf)0);
137 glEnable(GL_ALPHA_TEST);
139 TYPoint pt = getElement()->getPosition();
142 float fImgZOffset = 0.1f;
143 if (getElement()->getUseEmpriseAsCrbNiv())
145 fImgZOffset += (float)getElement()->getAltiEmprise();
149 OVector3D vecOrientation = getElement()->getOrientation().toVector3D();
152 if (vecOrientation.
norme() != 0)
155 angle =
SIGNE(vecOrientation.
_y) * acos(vecOrientation.
_x / vecOrientation.
norme());
156 angle = (
M_PI / 2.0) - angle;
159 float x =
_imgXSize / 2 * getElement()->getEchelle();
160 float y =
_imgYSize / 2 * getElement()->getEchelle();
162 glTranslatef(0.0f, 0.0f, fImgZOffset);
165 glRotatef(angle * 180 /
M_PI, 0.0, 0.0, 1.0);
168 glTexCoord2f(0.0, 0.0);
169 glVertex3f(pt.
_x - x, pt.
_y - y, pt.
_z);
171 glTexCoord2f(0.0, 1.0);
172 glVertex3f(pt.
_x - x, pt.
_y + y, pt.
_z);
174 glTexCoord2f(1.0, 1.0);
175 glVertex3f(pt.
_x + x, pt.
_y + y, pt.
_z);
177 glTexCoord2f(1.0, 0.0);
178 glVertex3f(pt.
_x + x, pt.
_y - y, pt.
_z);
183 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
184 glDisable(GL_ALPHA_TEST);
185 glDisable(GL_TEXTURE_2D);
188 glTranslatef(0.0f, 0.0f, -fImgZOffset);
194 ->getGraphicObject()))
195 ->setBackgroundImage(
_glImg, x, y, pt, vecOrientation);
200 if (!getElement()->getUseTopoFile())
203 ->unsetBackgroundImage();
206 getElement()->getTopographie()->getGraphicObject()->display(renderContext);
207 getElement()->getInfrastructure()->getGraphicObject()->display(renderContext);
211 glTranslatef(0.0f, 0.0f, 0.01f);
213 for (
unsigned int i = 0; i < TabSite.size(); i++)
217 if (TabSite.at(i)->getElement()->isInCurrentCalcul())
220 float fSiteNodeChildAltitude = pTYSiteNodeChild->
getAltiEmprise();
222 glTranslatef(0.0f, 0.0f, fSiteNodeChildAltitude);
223 TabSite.at(i)->getGraphicObject()->display(renderContext);
224 glTranslatef(0.0f, 0.0f, -fSiteNodeChildAltitude);
228 glTranslatef(0.0f, 0.0f, -0.01f + fSiteNodeAltitude);
232 void TYSiteNodeGraphic::connectUpdateSignal(QObject* pReceiver,
const char* member)
239 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