Changeset 4313 for trunk/packages/vizservers
- Timestamp:
- Apr 1, 2014 8:57:56 PM (10 years ago)
- Location:
- trunk/packages/vizservers/geovis
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/packages/vizservers/geovis/Renderer.cpp
r4312 r4313 955 955 * \param[in] absolute Control if pan amount is relative to current or absolute 956 956 */ 957 void Renderer::panCamera(double x, double y, bool absolute) 958 { 959 TRACE("Enter: %g %g, abs: %d", 960 x, y, (absolute ? 1 : 0)); 957 void Renderer::panCamera(double x, double y) 958 { 959 TRACE("Enter: %g %g", x, y); 961 960 962 961 if (_manipulator.valid()) { … … 967 966 } 968 967 969 void Renderer::rotateCamera(double x, double y, bool absolute) 970 { 971 TRACE("Enter: %g %g, abs: %d", 972 x, y, (absolute ? 1 : 0)); 968 void Renderer::rotateCamera(double x, double y) 969 { 970 TRACE("Enter: %g %g", x, y); 973 971 974 972 if (_manipulator.valid()) { … … 984 982 * \param[in] absolute Control if zoom factor is relative to current setting or absolute 985 983 */ 986 void Renderer::zoomCamera(double z, bool absolute) 987 { 988 TRACE("Enter: z: %g, abs: %d", 989 z, (absolute ? 1 : 0)); 984 void Renderer::zoomCamera(double z) 985 { 986 TRACE("Enter: z: %g", z); 990 987 991 988 if (_manipulator.valid()) { -
trunk/packages/vizservers/geovis/Renderer.h
r4312 r4313 313 313 void setCameraOrientation(const double quat[4], bool absolute = true); 314 314 315 void panCamera(double x, double y , bool absolute = false);316 317 void rotateCamera(double x, double y , bool absolute = false);318 319 void zoomCamera(double z , bool absolute = false);315 void panCamera(double x, double y); 316 317 void rotateCamera(double x, double y); 318 319 void zoomCamera(double z); 320 320 321 321 // Keyboard events -
trunk/packages/vizservers/geovis/RendererCmd.cpp
r4312 r4313 239 239 240 240 static int 241 CameraGetViewpointOp(ClientData clientData, Tcl_Interp *interp, int objc, 242 Tcl_Obj *const *objv) 243 { 244 osgEarth::Viewpoint view = g_renderer->getViewpoint(); 245 246 std::ostringstream oss; 247 size_t len = 0; 248 oss << "nv>camera get " 249 << view.x() << " " 250 << view.y() << " " 251 << view.z() << " " 252 << view.getHeading() << " " 253 << view.getPitch() << " " 254 << view.getRange() 255 << " {" << view.getSRS()->getHorizInitString() << "}" 256 << " {" << view.getSRS()->getVertInitString() << "}" 257 << "\n"; 258 len = oss.str().size(); 259 #ifdef USE_THREADS 260 queueResponse(oss.str().c_str(), len, Response::VOLATILE); 261 #else 262 ssize_t bytesWritten = SocketWrite(oss.str().c_str(), len); 263 264 if (bytesWritten < 0) { 265 return TCL_ERROR; 266 } 267 #endif /*USE_THREADS*/ 268 return TCL_OK; 269 } 270 271 static int 272 CameraSetViewpointOp(ClientData clientData, Tcl_Interp *interp, int objc, 273 Tcl_Obj *const *objv) 274 { 275 double x, y, z, heading, pitch, distance; 276 double duration = 0.0; 277 if (Tcl_GetDoubleFromObj(interp, objv[2], &x) != TCL_OK || 278 Tcl_GetDoubleFromObj(interp, objv[3], &y) != TCL_OK || 279 Tcl_GetDoubleFromObj(interp, objv[4], &z) != TCL_OK || 280 Tcl_GetDoubleFromObj(interp, objv[5], &heading) != TCL_OK || 281 Tcl_GetDoubleFromObj(interp, objv[6], &pitch) != TCL_OK || 282 Tcl_GetDoubleFromObj(interp, objv[7], &distance) != TCL_OK) { 283 return TCL_ERROR; 284 } 285 if (objc > 8) { 286 if (Tcl_GetDoubleFromObj(interp, objv[8], &duration) != TCL_OK) { 287 return TCL_ERROR; 288 } 289 } 290 if (objc > 9) { 291 char *srsInit = Tcl_GetString(objv[9]); 292 if (strlen(srsInit) > 0) { 293 osgEarth::SpatialReference *srs = NULL; 294 if (objc > 10) { 295 char *vertDatum = Tcl_GetString(objv[10]); 296 srs = osgEarth::SpatialReference::get(srsInit, vertDatum); 297 } else { 298 srs = osgEarth::SpatialReference::get(srsInit); 299 } 300 if (srs == NULL) { 301 return TCL_ERROR; 302 } 303 osgEarth::Viewpoint view(x, y, z, heading, pitch, distance, srs); 304 g_renderer->setViewpoint(view, duration); 305 } else { 306 osgEarth::Viewpoint view(x, y, z, heading, pitch, distance); 307 g_renderer->setViewpoint(view, duration); 308 } 309 } else { 310 osgEarth::Viewpoint view(x, y, z, heading, pitch, distance); 311 g_renderer->setViewpoint(view, duration); 312 } 313 return TCL_OK; 314 } 315 316 static int 241 317 CameraThrowOp(ClientData clientData, Tcl_Interp *interp, int objc, 242 318 Tcl_Obj *const *objv) … … 267 343 268 344 static CmdSpec cameraOps[] = { 345 {"get", 1, CameraGetViewpointOp, 2, 2, ""}, 269 346 {"orient", 1, CameraOrientOp, 6, 6, "qw qx qy qz"}, 270 347 {"pan", 1, CameraPanOp, 4, 4, "panX panY"}, … … 272 349 {"restore", 4, CameraRestoreViewpointOp, 3, 4, "name ?duration?"}, 273 350 {"rotate", 2, CameraRotateOp, 4, 4, "azimuth elevation"}, 274 {"save", 1, CameraSaveViewpointOp, 3, 3, "name"}, 351 {"save", 2, CameraSaveViewpointOp, 3, 3, "name"}, 352 {"set", 2, CameraSetViewpointOp, 8, 11, "x y z heading pitch distance ?duration? ?srs? ?vertDatum?"}, 275 353 {"throw", 1, CameraThrowOp, 3, 3, "bool"}, 276 354 {"zoom", 1, CameraZoomOp, 3, 3, "zoomAmount"}
Note: See TracChangeset
for help on using the changeset viewer.