From ffc8c4d3d0c7cfe8b8d1f43eee5e6b151805e38f Mon Sep 17 00:00:00 2001 From: mfranz Date: Fri, 27 Jan 2006 21:14:40 +0000 Subject: [PATCH] export scenery click geo coords --- src/Input/input.cxx | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/src/Input/input.cxx b/src/Input/input.cxx index fa5552c88..003362ace 100644 --- a/src/Input/input.cxx +++ b/src/Input/input.cxx @@ -316,20 +316,32 @@ FGInput::doMouseClick (int b, int updown, int x, int y) else { // pui and the panel didn't want the click event so compute a // terrain intersection point corresponding to the mouse click - // and be happy. This should eventually get written into a set - // of properties so that some other [future] subsystems can do - // something useful with the information. + // and be happy. FGScenery* scenery = globals->get_scenery(); sgdVec3 start, dir, hit; if (FGRenderer::getPickInfo(start, dir, x, y) && scenery->get_cart_ground_intersection(start, dir, hit)) { - + Point3D geod = sgCartToGeod(Point3D(hit[0], hit[1], hit[2])); - - std::cout << "lon = " << geod.lon()*SGD_RADIANS_TO_DEGREES - << " deg, lat = " << geod.lat()*SGD_RADIANS_TO_DEGREES - << " deg, elev = " << geod.elev() - << " m" << std::endl; + + static SGPropertyNode_ptr lon + = fgGetNode("/sim/input/click/longitude-deg", true); + static SGPropertyNode_ptr lat + = fgGetNode("/sim/input/click/latitude-deg", true); + static SGPropertyNode_ptr elev_m + = fgGetNode("/sim/input/click/elevation-m", true); + static SGPropertyNode_ptr elev_ft + = fgGetNode("/sim/input/click/elevation-ft", true); + + lon->setDoubleValue(geod.lon() * SGD_RADIANS_TO_DEGREES); + lat->setDoubleValue(geod.lat() * SGD_RADIANS_TO_DEGREES); + elev_m->setDoubleValue(geod.elev()); + elev_ft->setDoubleValue(geod.elev() * SG_METER_TO_FEET); + + // std::cout << "lon = " << geod.lon()*SGD_RADIANS_TO_DEGREES + // << " deg, lat = " << geod.lat()*SGD_RADIANS_TO_DEGREES + // << " deg, elev = " << geod.elev() + // << " m" << std::endl; } else { std::cout << "Cannot find intersection point" << std::endl; } -- 2.39.5