jni_result jni_writerWrite( jni_writer wri, const c_char* xmlUserData) { jni_result r; jni_writerCopyArg copyArg; sd_validationResult valResult; if( (wri == NULL) || (xmlUserData == NULL) || (wri->uwriter == NULL) || (xmlUserData == NULL)){ r = JNI_RESULT_BAD_PARAMETER; } else{ copyArg = os_malloc(C_SIZEOF(jni_writerCopyArg)); copyArg->writer = wri; copyArg->xmlData = xmlUserData; r = jni_convertResult(u_writerWrite(wri->uwriter, copyArg, u_timeGet(), U_INSTANCEHANDLE_NIL)); valResult = sd_serializerLastValidationResult(wri->deserializer); if(valResult != SD_VAL_SUCCESS){ OS_REPORT_2(OS_ERROR, CONT_DCPSJNI, 0, "Write of userdata failed.\nReason: %s\nError: %s\n", sd_serializerLastValidationMessage(wri->deserializer), sd_serializerLastValidationLocation(wri->deserializer)); r = JNI_RESULT_ERROR; } os_free(copyArg); } return r; }
/* returns time (in seconds) passed since last call to this function (0.0 the first time) */ double u_timeElapsed() { double t, temp; if ( (t = u_timeGet()) < 0.0) return -1.0; if (s_LastTimeElapsed < 0) { s_LastTimeElapsed = t; return 0.0; } else { temp = s_LastTimeElapsed; s_LastTimeElapsed = t; return t - temp; } }
void timerCallback(void *) { static char timingText[32]; sprintf(timingText, "%f", g_lastTiming); g_timingOutput->value(timingText); static char boxesText[32]; sprintf(boxesText, "%d", g_boxes); g_boxesOutput->value(boxesText); fprintf(stderr,"boxes %d, refines %d\n",g_boxes,g_refines); // Fl::add_timeout(10.0f / 30.0f, timerCallback); if (g_pushGo) { if ((int)(u_timeGet() * 2.0) & 1) ui_goButton->color(FL_GRAY); else ui_goButton->color(FL_RED); ui_goButton->redraw(); } }
gapi_instanceHandle_t gapi_fooDataWriter_register_instance ( gapi_fooDataWriter _this, const gapi_foo *instance_data) { _DataWriter datawriter; gapi_instanceHandle_t handle = GAPI_HANDLE_NIL; if ( instance_data ) { datawriter = gapi_dataWriterReadClaim(_this, NULL); if ( datawriter ) { handle = _DataWriterRegisterInstance(datawriter, instance_data, u_timeGet()); _EntityReadRelease(datawriter); } } return handle; }
gapi_returnCode_t gapi_fooDataWriter_unregister_instance ( gapi_fooDataWriter _this, const gapi_foo *instance_data, const gapi_instanceHandle_t handle) { _DataWriter datawriter; gapi_returnCode_t result = GAPI_RETCODE_OK; if ( instance_data || handle ) { datawriter = gapi_dataWriterReadClaim(_this, &result); if ( datawriter ) { result = _DataWriterUnregisterInstance(datawriter, instance_data, handle, u_timeGet()); _EntityReadRelease(datawriter); } } else { result = GAPI_RETCODE_PRECONDITION_NOT_MET; } return result; }
void glwindow::makeList() { // create a cube display list vector dir[3], base; dir[0] = _vector(e1); dir[1] = _vector(e2); dir[2] = _vector(e3); glNewList(cubeListName, GL_COMPILE); drawCube(base, dir); glEndList(); // create vector field display list glNewList(fieldListName, GL_COMPILE); glColor3f(lineColor[0], lineColor[1], lineColor[2]); // set up the cube base.set(vector_e1_e2_e3, -0.5f * g_cubeSize+g_cx, -0.5f * g_cubeSize+g_cy, -0.5f * g_cubeSize+g_cz); dir[0] = _vector(e1 * g_cubeSize); dir[1] = _vector(e2 * g_cubeSize); dir[2] = _vector(e3 * g_cubeSize); // draw it's vector field glDisable(GL_NORMALIZE); glDisable(GL_LIGHTING); drawVectorField(base, dir, g_vgs, g_evalFunc, g_vectorSize*0.05f, g_unitField); glEndList(); glNewList(resultListName, GL_COMPILE); // evaluate, draw if (g_lighting) { glEnable(GL_NORMALIZE); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); } glEnable(GL_CULL_FACE); glCullFace(GL_BACK); double t = u_timeGet(); extern int g_refines; g_boxes=0; g_refines=0; findSingularities(base, dir, g_gs, g_evalFunc, 0, g_maxDepth); g_lastTiming = u_timeGet() - t; timerCallback(NULL); glEndList(); if ( g_Dcube > 0 ) { glNewList(sphereListName, GL_COMPILE); glDisable(GL_NORMALIZE); glDisable(GL_LIGHTING); drawSphere(g_gs, 0); glEndList(); glNewList(spherePListName, GL_COMPILE); if (g_lighting) { glEnable(GL_NORMALIZE); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); } drawSphere(g_gs,1); glEndList(); glNewList(sphereNListName, GL_COMPILE); if (g_lighting) { glEnable(GL_NORMALIZE); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); } drawSphere(g_gs,2); glEndList(); glNewList(circListName, GL_COMPILE); glDisable(GL_NORMALIZE); glDisable(GL_LIGHTING); drawCirc(g_gs, 0); glEndList(); glNewList(circPListName, GL_COMPILE); if (g_lighting) { glEnable(GL_NORMALIZE); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); } drawCirc(g_gs,1); glEndList(); glNewList(circNListName, GL_COMPILE); if (g_lighting) { glEnable(GL_NORMALIZE); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); } drawCirc(g_gs,2); glEndList(); } }
void glwindow::draw() { if (!listNamesGenerated) { resultListName = glGenLists(9); cubeListName = resultListName + 1; fieldListName = resultListName + 2; sphereListName = resultListName +3; spherePListName = resultListName +4; sphereNListName = resultListName +5; circListName = resultListName +6; circPListName = resultListName +7; circNListName = resultListName +8; listNamesGenerated = true; makeNewList = true; } if (makeNewList) { extern Fl_Output *g_hpvalueOutput; makeList(); makeNewList = 0; static char valueText[32]; if ( g_Dcube > 0 ) { sprintf(valueText,"%g",g_hpvalue); g_hpvalueOutput->value(valueText); } else { g_hpvalueOutput->value(""); } g_hpvalueOutput->redraw(); } g_fieldsCurrentTime = u_timeGet(); beginglDraw(); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_MODELVIEW); glPushMatrix(); glTranslatef(dx, dy, -distance); rotorGLMult(rot); // test for converting a rotor to a OpenGL matrix using outer morphism (should go into seperate function or something) /*e3ga_om om; e3ga vi[3], ri = rot.inverse(); // vi = vector images; ri = rot inverse vi[0] = rot * e3ga::e1 * ri; vi[1] = rot * e3ga::e2 * ri; vi[2] = rot * e3ga::e3 * ri; om.initOuterMorphism(vi); float rotM[16] = { om.c[1 + 0 * 3 + 0], om.c[1 + 1 * 3 + 0], om.c[1 + 2 * 3 + 0], 0, om.c[1 + 0 * 3 + 1], om.c[1 + 1 * 3 + 1], om.c[1 + 2 * 3 + 1], 0, om.c[1 + 0 * 3 + 2], om.c[1 + 1 * 3 + 2], om.c[1 + 2 * 3 + 2], 0, 0, 0, 0, 1 }; glMultMatrixf(rotM);*/ if (g_showField) { glCallList(fieldListName); } if (g_showResult) { glCallList(resultListName); } if (g_showSphere && g_Dcube>0) { glCallList(sphereListName); } if (g_showPSphere && g_Dcube>0) { glCallList(spherePListName); } if (g_showNSphere && g_Dcube>0) { glCallList(sphereNListName); } if ( g_showCirc && g_Dcube > 0 ) { glCallList(circListName); glCallList(circPListName); glCallList(circNListName); } glPopMatrix(); endglDraw(); }