@@ -18,7 +18,7 @@ GeoData::GeoData()
1818#endif
1919
2020 m_transformRoot = new osg::MatrixTransform;
21- m_transformRoot->setMatrix (osg::Matrix ::identity ());
21+ m_transformRoot->setMatrix (osg::Matrixd ::identity ());
2222 cover->getObjectsRoot ()->addChild (m_transformRoot);
2323
2424 m_terrainRoot = new osg::Group;
@@ -82,39 +82,39 @@ void GeoData::setProjection(std::string_view projection)
8282#endif
8383}
8484
85- void GeoData::setProjectOffset (const osg::Vec3 &projectOffset)
85+ void GeoData::setProjectOffset (const osg::Vec3d &projectOffset)
8686{
8787 setProjectTransform (projectOffset, m_projectTrueNorthDegree);
8888}
8989
90- void GeoData::setProjectTransform (const osg::Vec3 &projectOffset, const double trueNorthDeg)
90+ void GeoData::setProjectTransform (const osg::Vec3d &projectOffset, const double trueNorthDeg)
9191{
9292 m_projectOffset = projectOffset;
9393 m_projectTrueNorthDegree = trueNorthDeg;
94- osg::Matrix rot = osg::Matrix ::rotate (osg::DegreesToRadians (-trueNorthDeg), osg::Vec3 (0 , 0 , 1 ));
95- osg::Matrix trans = osg::Matrix ::translate (-projectOffset);
94+ osg::Matrixd rot = osg::Matrixd ::rotate (osg::DegreesToRadians (-trueNorthDeg), osg::Vec3d (0 , 0 , 1 ));
95+ osg::Matrixd trans = osg::Matrixd ::translate (-projectOffset);
9696 m_projectTransform = trans * rot;
97- m_inverseProjectTransform = osg::Matrix ::inverse (m_projectTransform);
97+ m_inverseProjectTransform = osg::Matrixd ::inverse (m_projectTransform);
9898 m_transformRoot->setMatrix (m_projectTransform);
9999}
100100
101101const std::string &GeoData::projection () const
102102{
103103 return m_projection;
104104}
105- const osg::Vec3 &GeoData::projectOffset () const
105+ const osg::Vec3d &GeoData::projectOffset () const
106106{
107107 return m_projectOffset;
108108}
109109const double GeoData::projectTrueNorthDegree () const
110110{
111111 return m_projectTrueNorthDegree;
112112}
113- const osg::Matrix &GeoData::projectTransform () const
113+ const osg::Matrixd &GeoData::projectTransform () const
114114{
115115 return m_projectTransform;
116116}
117- const osg::Matrix &GeoData::inverseProjectTransform () const
117+ const osg::Matrixd &GeoData::inverseProjectTransform () const
118118{
119119 return m_inverseProjectTransform;
120120}
@@ -128,23 +128,23 @@ osg::Group *GeoData::terrainRoot()
128128 return m_terrainRoot;
129129}
130130
131- osg::Vec3 GeoData::getProjectPosition ()
131+ osg::Vec3d GeoData::getProjectPosition ()
132132{
133- return osg::Matrix ::inverse (cover->getXformMat ()).getTrans () / cover->getScale ();
133+ return osg::Matrixd ::inverse (cover->getXformMat ()).getTrans () / cover->getScale ();
134134}
135135
136- osg::Vec3 GeoData::getGlobalPosition ()
136+ osg::Vec3d GeoData::getGlobalPosition ()
137137{
138138 auto projectLocation = getProjectPosition ();
139139 return projectToGlobal (projectLocation);
140140}
141141
142- osg::Vec3 GeoData::globalToProject (const osg::Vec3 &globalPosition) const
142+ osg::Vec3d GeoData::globalToProject (const osg::Vec3d &globalPosition) const
143143{
144144 return globalToReference (globalPosition) * m_projectTransform;
145145}
146146
147- osg::Vec3 GeoData::globalToReference (const osg::Vec3 &globalPosition) const
147+ osg::Vec3d GeoData::globalToReference (const osg::Vec3d &globalPosition) const
148148{
149149#ifndef HAVE_PROJ
150150 return globalPosition;
@@ -156,13 +156,13 @@ osg::Vec3 GeoData::globalToReference(const osg::Vec3 &globalPosition) const
156156
157157 PJ_COORD c_out = proj_trans (m_transformation, PJ_FWD , c);
158158
159- osg::Vec3 position_transformed (c_out.enu .e , c_out.enu .n , c_out.enu .u );
159+ osg::Vec3d position_transformed (c_out.enu .e , c_out.enu .n , c_out.enu .u );
160160
161161 return position_transformed;
162162#endif
163163}
164164
165- osg::Vec3 GeoData::projectToGlobal (const osg::Vec3 &projectPosition) const
165+ osg::Vec3d GeoData::projectToGlobal (const osg::Vec3d &projectPosition) const
166166{
167167#ifndef HAVE_PROJ
168168 return projectPosition;
@@ -176,23 +176,23 @@ osg::Vec3 GeoData::projectToGlobal(const osg::Vec3 &projectPosition) const
176176
177177 PJ_COORD c_out = proj_trans (m_transformation, PJ_INV , c);
178178
179- return osg::Vec3 (c_out.lpz .lam , c_out.lpz .phi , c_out.lpz .z );
179+ return osg::Vec3d (c_out.lpz .lam , c_out.lpz .phi , c_out.lpz .z );
180180#endif
181181}
182182
183- void GeoData::jumpToLocation (const osg::Vec3 &projectPosition)
183+ void GeoData::jumpToLocation (const osg::Vec3d &projectPosition)
184184{
185- osg::Vec3 target = projectPosition;
185+ osg::Vec3d target = projectPosition;
186186 double scale = cover->getScale ();
187187
188- cover->setXformMat (osg::Matrix ::translate (-projectPosition * scale)); // * osg::Matrix ::rotate(cover->getXformMat().getRotate()));
188+ cover->setXformMat (osg::Matrixd ::translate (-projectPosition * scale)); // * osg::Matrixd ::rotate(cover->getXformMat().getRotate()));
189189}
190190
191- void GeoData::jumpToLocation (const osg::Vec3 &projectPosition, double aboveTerrain)
191+ void GeoData::jumpToLocation (const osg::Vec3d &projectPosition, double aboveTerrain)
192192{
193193 osg::ref_ptr<osgUtil::LineSegmentIntersector> intersector = new osgUtil::LineSegmentIntersector (
194- osg::Vec3 (projectPosition.x (), projectPosition.y (), 10000.0 ),
195- osg::Vec3 (projectPosition.x (), projectPosition.y (), -10000.0 ));
194+ osg::Vec3d (projectPosition.x (), projectPosition.y (), 10000.0 ),
195+ osg::Vec3d (projectPosition.x (), projectPosition.y (), -10000.0 ));
196196 osgUtil::IntersectionVisitor iv (intersector);
197197
198198 auto terrainRoot = GeoData::instance ()->terrainRoot ();
@@ -201,7 +201,7 @@ void GeoData::jumpToLocation(const osg::Vec3 &projectPosition, double aboveTerra
201201
202202 if (intersector->containsIntersections ())
203203 {
204- jumpToLocation (osg::Vec3 (
204+ jumpToLocation (osg::Vec3d (
205205 projectPosition.x (),
206206 projectPosition.y (),
207207 intersector->getFirstIntersection ().getLocalIntersectPoint ().z () + aboveTerrain));
0 commit comments