#define USE_FORGE_CPU_COPY_HELPERS
#include <complex>
#include <cmath>
#include <vector>
#include <iostream>
using namespace std;
static const float XMIN = -32.0f;
static const float XMAX =  32.0f;
static const float YMIN = -32.0f;
static const float YMAX =  32.0f;
const float DX = 0.25;
const size_t XSIZE = (XMAX-XMIN)/DX;
const size_t YSIZE = (YMAX-YMIN)/DX;
void genSurface(float dx, std::vector<float> &vec )
{
    vec.clear();
    for(float x=XMIN; x < XMAX; x+=dx) {
        for(float y=YMIN; y < YMAX; y+=dx) {
            vec.push_back(x);
            vec.push_back(y);
            float z = sqrt(x*x+y*y) + 2.2204e-16;
            vec.push_back(sin(z)/z);
        }
    }
}
int main(void)
{
    
    chart.
setAxesLimits(XMIN-2.0f, XMAX+2.0f, YMIN-2.0f, YMAX+2.0f, -0.5f, 1.f);
    
    std::vector<float> function;
    genSurface(DX, function);
    
    do {
    releaseGLBuffer(handle);
    return 0;
}