Update an Origin C Matrix object from an Origin matrix or vice-versa.
void Update( BOOL bFromOrigin, int mode = REDRAW_REFRESH )
EX1
// Demonstrate updating an Origin C Matrix object from an Origin matrix (by LabTalk) void Matrix_Update_ex1() { MatrixPage MatPg1; MatPg1.Create("Origin"); MatrixLayer MatLy1 = MatPg1.Layers(0); Matrix Mat1(MatLy1); Mat1.SetSize(2,2); printf(" >> Original 2x2 Matrix %s is created.\n",Mat1.GetName()); LT_execute("Matrix -ps DIM 3 3"); // Origin (via LabTalk) changes the matrix dimensions to 3x3 printf(" >> LabTalk command, Matrix -ps has been applied to %s to make the size 3x3.\n", Mat1.GetName()); printf(" BEFORE Update is applied, internally the number of columns is still %d, NOT updated.\n", Mat1.GetNumCols()); Mat1.Update(TRUE); // Update from Origin printf(" AFTER Update is applied, internally the number of columns is now %d, updated.\n", Mat1.GetNumCols()); Mat1.SetSize(4,4); printf(" >> OC function, SetSize has been applied to %s to make the size 4x4.\n", Mat1.GetName()); printf(" Number of columns is internally already %d even without applying Update.\n", Mat1.GetNumCols()); }
EX2
// Demonstrate updating an Origin matrix from an Origin C Matrix object void Matrix_Update_ex2() { PageBase pgbas1; pgbas1 = Project.Pages(); // Get the project's active page if(pgbas1.GetType()!=EXIST_MATRIX) { printf(" Error: No active matrix. Please make an active matrix window.\n"); return; } Matrix Mat1(pgbas1.GetName()); Mat1 = 0; // OC Matrix becomes a zero matrix internally. MessageBox(GetWindow()," Note that Matrix1 becomes a zero matrix internally."); Mat1.Update(FALSE,REDRAW_NONE); MessageBox(GetWindow()," Updated with no refresh. Note that Matrix1 looks unchanged."); Mat1.Update(FALSE,REDRAW_REFRESH); MessageBox(GetWindow()," Updated with refresh. Matrix1 has been changed to a zero matrix."); }
Update an Origin C Matrix object when the matrix data in Origin is changed or update the matrix in Origin before exiting from the current program scope.
origin.h