Ignore:
Timestamp:
Apr 1, 2014, 7:22:56 PM (11 years ago)
Author:
ldelgass
Message:

Add protocol to save/restore named camera viewpoints

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/packages/vizservers/geovis/RendererCmd.cpp

    r4310 r4312  
    209209
    210210static int
     211CameraSaveViewpointOp(ClientData clientData, Tcl_Interp *interp, int objc,
     212                      Tcl_Obj *const *objv)
     213{
     214    char *name = Tcl_GetString(objv[2]);
     215
     216    g_renderer->saveNamedViewpoint(name);
     217    return TCL_OK;
     218}
     219
     220static int
     221CameraRestoreViewpointOp(ClientData clientData, Tcl_Interp *interp, int objc,
     222                         Tcl_Obj *const *objv)
     223{
     224    char *name = Tcl_GetString(objv[2]);
     225
     226    double duration = 0.0;
     227    if (objc > 3) {
     228        if (Tcl_GetDoubleFromObj(interp, objv[3], &duration) != TCL_OK) {
     229            return TCL_ERROR;
     230        }
     231    }
     232    if (!g_renderer->restoreNamedViewpoint(name, duration)) {
     233        Tcl_AppendResult(interp, "camera viewpoint \"", name,
     234                         "\" not found", (char*)NULL);
     235        return TCL_ERROR;
     236    }
     237    return TCL_OK;
     238}
     239
     240static int
    211241CameraThrowOp(ClientData clientData, Tcl_Interp *interp, int objc,
    212242              Tcl_Obj *const *objv)
     
    237267
    238268static CmdSpec cameraOps[] = {
    239     {"orient", 1, CameraOrientOp, 6, 6, "qw qx qy qz"},
    240     {"pan",    1, CameraPanOp, 4, 4, "panX panY"},
    241     {"reset",  2, CameraResetOp, 2, 3, "?all?"},
    242     {"rotate", 2, CameraRotateOp, 4, 4, "azimuth elevation"},
    243     {"throw",  1, CameraThrowOp, 3, 3, "bool"},
    244     {"zoom",   1, CameraZoomOp, 3, 3, "zoomAmount"}
     269    {"orient",  1, CameraOrientOp,           6, 6, "qw qx qy qz"},
     270    {"pan",     1, CameraPanOp,              4, 4, "panX panY"},
     271    {"reset",   4, CameraResetOp,            2, 3, "?all?"},
     272    {"restore", 4, CameraRestoreViewpointOp, 3, 4, "name ?duration?"},
     273    {"rotate",  2, CameraRotateOp,           4, 4, "azimuth elevation"},
     274    {"save",    1, CameraSaveViewpointOp,    3, 3, "name"},
     275    {"throw",   1, CameraThrowOp,            3, 3, "bool"},
     276    {"zoom",    1, CameraZoomOp,             3, 3, "zoomAmount"}
    245277};
    246278static int nCameraOps = NumCmdSpecs(cameraOps);
Note: See TracChangeset for help on using the changeset viewer.