These are simple helper classes for using the Grace through pipe written in C++. The usage is similar to that of the iostream.
//sample program
#include "grace.h"
#include <cmath>
#include <unistd.h>
int main(int argc, char* argv[])
{
// Start Grace
// graph([grace parameterfile], graph number)
gracesc::Xmgrace graph("sample.par", 3);
// Plot sample data
for(int i=1;i<=100 && graph.open();i++){
// Add data ( not draw )
// usage: graph[ graph number ] << x << y1 << y2 << ... << grace::endl
graph[0] << i << i << i*i << gracesc::endl;
graph[1] << i << pow(i,1.5) << gracesc::endl;
if(i%10==0){
graph[0].draw(); // Draw data : Send plotdata to Grace
graph[1].draw();
graph.redraw(); // Send "redraw" command to Grace
sleep(1);
}
}
for(int i=0;i<=10;i++){
for(int j=0;j<=100;j++){
graph[2] << j << j+i << (j+i)*(j+i) << gracesc::endl;
}
graph[2].clear(); // Send "kill data" command to Grace
graph[2].draw();
graph.redraw();
}
if(graph.open()){
//Tell Grace to save the data
graph << "saveall \"sample.agr\"";
}
}