| DataPlot::GetDataPointsGetDataPoints DescriptionGiven DataPlot data index range and get corresponding data point values. Get data points that are inside the enclosed graphic object. Syntax
int GetDataPoints( int nrFrom, int nrTo, vector& vx, vector& vy, vector& vz = NULL, vector& vErr = NULL, DWORD dwCntrl = 0, int nPts = 800 )
int GetDataPoints( OriginObject & obj, vector & vx, vector & vy, vector<int> * pIndeces = NULL, DWORD dwCtrl = 0 )
 Parameters
    nrFrom[input] 0 offset begin index to the data in the data plot.nrTo[input] 0 offset end index to the data in the data plot.vx[output] if not NULL, to receive the X values.vy[output] if not NULL, to receive the Y values.vz[output] if not NULL, to receive the Z values if DataPlot has Z values, or NANUM.vErr[output] reserved parameter, for later use.dwCntrl[input] to control the internal details, can be bits in GETDATAPTSCTRL.nPts[input] number points of speed mode, only used when bit GETDATAPTS_SPEED_MODE is specified. 
 
    obj[input] a graph object like a rectangle or a polygonvx[output] x coordinates of the found pointsvy[output] y coordinates of the found pointspIndeces[output] indexes of the found pointsdwCtrl[input] enum as GDPS_*. If set as GDPS_AFTER_MASK, can get masked points as missing values, if set as GDPS_CHECK_EDGE, will include boundary points. ReturnNumber of non-NANUM values if success. NANUM values are stored in the various vectors. Negative error codes are returned if error. number of data points found or < 0 for error codes ExamplesEX1 
void DataPlot_GetDataPoints_Ex1()
{
        //make sure there exists a graph with dataplots on it before running this code.
        GraphLayer gl = Project.ActiveLayer();
        if ( gl )
        {
                DataPlot dp = gl.DataPlots(0); //get the first dataplot on graphlayer
                if ( dp )
                {
                        vector vX, vY;
                        dp.GetDataPoints(0, -1, vX, vY);
                        vector<string> vsX, vsY;
                        convert_double_vector_to_string_vector(vX, vsX, vX.GetSize());
                        convert_double_vector_to_string_vector(vY, vsY, vY.GetSize());
                        string strXData, strYData;
                        strXData.SetTokens(vsX, ',');
                        strYData.SetTokens(vsY, ',');
                        printf("All X points in dataplot is : %s\n", strXData);
                        printf("All Y points in dataplot is : %s\n", strYData);
                }
        }
        
}
EX2 
// For this example to run, a graph window must exist in the project.
// Also, the active layer in the Graph should have a graphic object (such as rectangle) with
// the name "Rect" which covers some data points
void    DataPlot_GetDataPoints_ex2()
{
    // Create and attach a graph layer from current Graph:
    GraphLayer        gl = Project.ActiveLayer();
    
    DataPlot dp = gl.DataPlots(0); //get the first dataplot on graphlayer
    if ( dp )
    {
        GraphObject grobj = gl.GraphObjects("Rect");
        vector vX, vY;
        vector<int> vnIndeces;
        dp.GetDataPoints(grobj, vX, vY, &vnIndeces);
        
        vector<string> vsX, vsY;
        convert_double_vector_to_string_vector(vX, vsX, vX.GetSize());
        convert_double_vector_to_string_vector(vY, vsY, vY.GetSize());
        string strXData, strYData;
        strXData.SetTokens(vsX, ',');
        strYData.SetTokens(vsY, ',');
        printf("All X points in dataplot is : %s\n", strXData);
        printf("All Y points in dataplot is : %s\n", strYData);
    }
 
}
RemarkSee AlsoDataPlot::GetDataPoint header to Includeorigin.h |