source: trunk/lang/matlab/rpLibGetDouble.cc @ 1018

Last change on this file since 1018 was 165, checked in by dkearney, 18 years ago

1) removing matlab and octave tests for put*id functions
2) adding old fortran examples
3) minor changes to matlab and octave to fix rpUnitsGetBasis
4) rpUnitsMakeMetric does not work in matlab
5) changes to fortran bindings to return proper error codes.
6) added debugging to matlab compiling options and changed outdir location in Makefile

File size: 1.9 KB
Line 
1/*
2 * ----------------------------------------------------------------------
3 *  INTERFACE: Matlab Rappture Library Source
4 *
5 *    [retVal,err] = rpLibGetDouble(libHandle,path)
6 *
7 * ======================================================================
8 *  AUTHOR:  Derrick Kearney, Purdue University
9 *  Copyright (c) 2004-2005  Purdue Research Foundation
10 *
11 *  See the file "license.terms" for information on usage and
12 *  redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
13 * ======================================================================
14 */
15
16#include "RpMatlabInterface.h"
17
18/**********************************************************************/
19// METHOD: [retVal,err] = rpLibGetDouble(libHandle,path)
20/// Query the value of a node.
21/**
22 * Clients use this to query the value of a node.  If the path
23 * is not specified, it returns the value associated with the
24 * root node.  Otherwise, it returns the value for the element
25 * specified by the path. The return value is returned as a double.
26 *
27 * Error code, err=0 on success, anything else is failure.
28 */
29
30void mexFunction(int nlhs, mxArray *plhs[],
31                 int nrhs, const mxArray *prhs[])
32{
33    int         libIndex    = 0;
34    int         retLibIndex = 0;
35    int         err         = 1;
36    RpLibrary*  lib         = NULL;
37    std::string path        = "";
38    double      retVal      = 0.0;
39
40    /* Check for proper number of arguments. */
41    if (nrhs != 2) {
42        mexErrMsgTxt("Two input required.");
43    }
44
45    libIndex = getIntInput(prhs[0]);
46    path = getStringInput(prhs[1]);
47
48    /* Call the C subroutine. */
49    if ( (libIndex > 0) && (!path.empty()) ) {
50        lib = getObject_Lib(libIndex);
51
52        if (lib) {
53            retVal = lib->getDouble(path);
54            err = 0;
55        }
56    }
57
58    /* Set double scalar to MATLAB mexFunction output*/
59    plhs[0] = mxCreateDoubleScalar(retVal);
60    plhs[1] = mxCreateDoubleScalar(err);
61
62    return;
63}
Note: See TracBrowser for help on using the repository browser.